Как протестировать веб-службу с помощью Watin

Я пытаюсь написать тест, который вызывает веб-службу и проверяет ее результаты.

[Test]
        public void should_display_correct_customer_when_DoCustomerSearch_is_invoked()
        {
            using (var browser = new IE("http://localhost:61245/WebServices/CustomerSearch.asmx?op=DoCustomerSearch"))
            {       
                browser.WaitForComplete();

                browser.TextField(Find.ByName("txtSearch")).TypeText("microsoft");
                browser.Button(Find.ByValue("Invoke")).Click();
                browser.Close();

                IE poppedUpBrowser = IE.AttachTo<IE>(Find.ByUrl("http://localhost:61245/WebServices/CustomerSearch.asmx/DoCustomerSearch"));

                poppedUpBrowser.WaitForComplete();
                Assert.IsTrue(poppedUpBrowser.ContainsText("Microsoft Corporation"));                
            } 
        }

Когда я вызываю службу через браузер, отображаются результаты, но когда WATIN проходит тот же тест, на странице результатов появляется ошибка сервера 500.

Любая помощь приветствуется, пожалуйста.


person Gilbert Liddell    schedule 22.03.2011    source источник
comment
Есть ли причина, по которой вы используете waitn вместо вызова веб-службы через автоматически созданный прокси-сервер веб-службы?   -  person k3b    schedule 22.03.2011


Ответы (2)


Вы пытаетесь протестировать веб-службу через WatiN?

Есть способы сделать это лучше: вам лучше протестировать свою логику в модульных / интеграционных тестах. Эти тесты будут выполняться намного быстрее, чем WatiN.

HTTP 500 возвращается вашей веб-службой - вероятно, из вашего кода выброшено исключение - проверьте свои журналы или прикрепите отладчик.

person Jakub Konecki    schedule 22.03.2011
comment
Привет, спасибо за ответ. У меня уже есть модульные тесты для веб-сервисов, но сейчас я играю с watin. Наша страница использует много jquery для вызовов веб-служб, и я хотел посмотреть, могу ли я использовать watin для вызова веб-службы и проверки возвращенного xml. Нет никаких исключений, и в журналах ничего нет. Это просто не удается. - person Gilbert Liddell; 22.03.2011

Я согласен с Якубом, использование WatiN для тестирования веб-сервисов не кажется хорошей идеей. Вы должны использовать веб-службу с помощью Visual Studio, которая создаст для вас класс. Вы можете вызвать веб-службу через сгенерированный класс и проверить результат.

person Richard Guion    schedule 05.04.2011