2010-04-29 2 views
1

У меня есть набор веб-тестов, созданных для веб-службы. Я использую его для тестирования определенного метода ввода, который обновляет базу данных SQL. У веб-службы нет способа получить данные, это не его цель, а только для ее обновления. У меня есть валидатор, который проверяет XML-ответ, который создается веб-службой для каждого запроса. Все это прекрасно работает.Должен ли я полагаться на WebTests для проверки данных?

Было предложено товарищем по команде, что я добавляю проверку данных, чтобы проверить базу данных, чтобы увидеть данные после запуска проверки исходного ответа и сравнить ее с тем, что было во входном запросе. У нас есть несколько служб и библиотек, которые отделены от веб-службы, которую я тестирую, и я могу использовать ее для получения данных и сравнения. Проблема в том, что при запуске веб-теста проверка данных всегда терпит неудачу, даже когда запрос завершается успешно. Я попытался помещать поток в режим ожидания между проверкой ответа и проверкой данных, но безрезультатно; Он всегда получает данные до проверки ответа. Я могу установить точку останова и визуально увидеть, что данные были обновлены в БД, смешно, когда я прохожу через нее в отладке с точкой останова, которую он успешно выполняет.

Прежде чем я получу слишком много в этом вопросе, я должен спросить; Является ли это целью веб-тестов? Должен ли я иметь возможность проверять данные через служебные вызовы таким образом или я прошу слишком много веб-теста, и проверка ответа - насколько я должен идти?

ответ

1

Это не требует слишком много теста, просто убедитесь, что запрос базы данных вызывается после того, как вы получаете WebTestRequest для вызова WebService.

В этом случае проверка базы данных отделена от вызова.

Почтовый код для вашего веб-сайта, если есть проблемы.

+0

Спасибо Nat. Я узнал, в чем проблема. Я получал данные в экземпляре DataValidator; даже несмотря на то, что это произошло после того, как веб-тест дал свои результаты, это были старые данные. Как только я переведу код, чтобы получить данные в действительный метод Validate, он сработал. –