Модульный тест выдает исключение при подключении к веб-сервису asp.net - PullRequest
0 голосов
/ 01 февраля 2012

Я создал модульный тест, чтобы проверить, могу ли я войти в свой веб-сервис ASP.NET. Веб-сервис работает нормально, и даже процесс входа в систему.

Однако при попытке подключиться к нему через мой тест выдает ошибку:

Указанный URL ('http://www.foo.com/') не соответствует действительный каталог. Тесты, настроенные для работы в ASP.NET в IIS, требуют допустимый каталог для URL.

Я запускаю свой веб-сервис через визуальную студию, поскольку проект все еще находится в разработке.

это мой тестовый код:

[TestMethod()]
        [HostType("ASP.NET")]
        [UrlToTest("http://www.foo.com/")]
        public void Login_Test_It_Fails_If_GUID_IS_Wrong()
        {
            //Arrange
            Service service = new Service(); 
            string pGUID = string.Empty; 
            string connectionSQL = @"XXXXXXXXXX";
            bool targetOutput = false;

            //Act
            targetOutput = service.Login(pGUID, connectionSQL);

            //Assert
            Assert.IsFalse(targetOutput);
        }

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 19 января 2013

Для запуска тестов в ASP.NET требуется, чтобы URL-адрес преобразовывался на страницу ASP.NET и чтобы страница выполнялась правильно до события Load.
Метод теста вызывается событием загрузки страницы. Таким образом, вы можете создать пустую страницу aspx и установить атрибут UrlToTest для ее перехвата.

0 голосов
/ 01 февраля 2012

Вы проводите интеграционный тест здесь, поскольку вы тестируете, что ваше приложение может взаимодействовать с внешней зависимостью.

Если вы хотите провести модульное тестирование, вы можете изучитьдругой подход.

  1. Если вы контролируете веб-сервис, вы можете написать тесты для самого сервиса, подтверждая его логику аутентификации при входе.

  2. Для вашего потребляющего приложения вы можете написать модульные тесты на основе макета службы, чтобы убедиться, что ваше приложение демонстрирует правильное поведение при получении ответаиз службы.

С другой стороны, передача строки подключения для использования в службу выглядит как плохой дизайн.Почему вызывающее приложение должно знать, какую базу данных должен использовать сервис?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...