2010-01-12 1 views
3

Это мой первый тест для веб-приложения Asp.Net. У нас есть Двигатель, состоящий из нескольких модулей. Мне нужно проверить классы в модуле Engine. Хотя эти кланы являются частью приложения Asp.Net, они состоят только из бизнес-логики.Конфигурация модуля тестирования для приложения ASP.NET

Как я могу проверить эти классы в изоляции, другие являются частью WebApp? потому что я получаю эту ошибку

Веб-запрос 'http://localhost:8936/' успешно завершен без запуска теста. Это может произойти при сбое настройки веб-приложения для тестирования (при обработке запроса возникает ошибка сервера ASP.NET) или когда страница ASP.NET не выполняется (URL-адрес может указывать на HTML-страницу, веб-службу или список каталогов). Выполнение тестов в ASP.NET требует, чтобы URL-адрес разрешался на странице ASP.NET и чтобы страница правильно выполнялась до события загрузки. Ответ от запроса хранится в файле «WebRequestResponse_BlogManagerBPOConstr.html» с результатами теста; обычно этот файл можно открыть с помощью веб-браузера для просмотра его содержимого.

Благодаря

EDIT: @Mark, это один из TestMethods сгенерированного дизайнера

/

// <summary> 
     ///A test for BlogManagerBPO Constructor 
     ///</summary> 
     // TODO: Ensure that the UrlToTest attribute specifies a URL to an ASP.NET page (for example, 
     // http://.../Default.aspx). This is necessary for the unit test to be executed on the web server, 
     // whether you are testing a page, web service, or a WCF service. 
     [TestMethod()] 
     [HostType("ASP.NET")] 
     [AspNetDevelopmentServerHost("D:\\WorkingCopies\\MyProject\\Engine", "/")] 
     [UrlToTest("http://localhost:8936/")] 
     public void BlogManagerBPOConstructorTest() 
     { 
      BlogManagerBPO target = new BlogManagerBPO(); 
      Assert.Inconclusive("TODO: Implement code to verify target"); 
     } 
+0

какой модуль тестирования модулей вы используете? –

+0

Microsoft представила VS2008, «Microsoft.VisualStudio.QualityTools.UnitTestFramework» –

+0

@asdi: Несмотря на то, что MS может назвать это, это не модульный тест. Я повторил ваш вопрос, чтобы привлечь немного другую аудиторию, которая может помочь вам в этом. –

ответ

5

Сообщение исключения, которое вы получаете не звучит, как это единичный тест. Вы пытаетесь запустить пакет Visual Studio Web Test?

Для модульного тестирования вы должны просто создать экземпляр классов бизнес-логики и протестировать их без вмешательства из среды выполнения ASP.NET.

В MSTest, что может выглядеть следующим образом:

[TestMethod] 
public void Test5() 
{ 
    var sut = new Thing(); 
    var expectedResult = new object(); 
    sut.Bar = expectedResult; 
    var actual = sut.Bar; 
    Assert.AreEqual(expectedResult, actual); 
} 

(возможно, не самый захватывающий тест, хотя ...)

специфика Нет ASP.NET везде можно найти.

Это лучше всего обеспечивается, если вы размещаете бизнес-логику в отдельной библиотеке и убедитесь, что он не ссылается System.Web и т.д.

+0

Я написал тесты вручную, используя NUnit и смог успешно работать с использованием внешней среды NUnit.Я пытался использовать/практиковать «UnitTestFramework» и интегрированную встроенную тестовую среду, предоставленную Microsoft на VS2008. –

+0

Если вы хотите написать тесты NUnit-style, вы можете сделать это тоже с MSTest. Просто не используйте всех своих дрянных мастеров, а просто создайте новый тестовый проект и начните добавлять в проект новые тесты единиц. –

+0

Еще одна вещь, я использую «Утверждения» в NUnit на данный момент. Мне нужно «Mock» Объекты для тестирования многих mathods. Как я могу создать Mocks? –

2

Установите атрибут UrlToTest в Url В тесте. Как:

[TestMethod()] 
[HostType("ASP.NET")] 
[AspNetDevelopmentServerHost("C:\\xx\\xx\\Documents\\Visual Studio 2010\\Projects\\xx\\xx", "/")] 
[UrlToTest("http://localhost:xxx/examples.aspx")] 
[DeploymentItem("examples.dll")] 
1

Или Как сказал Марк, Избавиться от
[HostType("ASP.NET")] [AspNetDevelopmentServerHost("C:\xx\xx\Documents\Visual Studio 2010\Projects\xx\xx", "/")] [UrlToTest("http://localhost:xxx/examples.aspx")] [DeploymentItem("examples.dll")] пытается использовать его в проекте MVC, и он не прошел, пока я не избавилась от него

0

Просто проверьте если вы добавили app.config в ваш тестовый проект, и у него есть необходимые настройки из вашего web.config (из проекта WebService).