Как я могу тест на модульный тест или интеграция на 404 - не найдено?

StackOverflow https://stackoverflow.com/questions/4796589

Вопрос

Моя команда пишет приложение, управляемое контентом, в ASP.NET MVC 2 с помощью фреймворта архитектуры S#ARP. Я использую Specflow и Watin для тестирования интеграции и NUNIT для модульного тестирования.

У меня есть настраиваемая фабрика контроллера, которая находит страницу в базе данных на основе URL и сайта, а затем загружает правильный контроллер и действие. Он также загружает контроллер ошибок, когда страница (или сайт) не найдена в базе данных.

Я хочу написать либо модульный тест, либо тест интеграции, который проверяет страницу 404, правильно отображается, когда URL -адрес является недействительным. Ватин не может проверить заголовок ответа, поэтому он не может точно убедиться, что фактическая страница 404 была загружена. Это может устранить интеграционный тест в качестве решения.

Я новичок в TDD и BDD, поэтому я могу упустить что -то очевидное. Кроме того, я испытываю тесты в ретро в этот проект, что делает его намного сложнее.

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

Это было полезно?

Решение

Обычно, когда мы пишем сценарии BDD, мы пишем их с точки зрения пользователя.

Если пользователь является обычным человеком, им, вероятно, не слишком заботится о том, является ли заголовок подлинным 404. Они предпочли бы страницу, дающую им четкое и полезное сообщение. Напишите сценарий, чтобы проверить четкое и полезное сообщение.

Given no section on unicorns exists
When the user browses for horses
And changes the url to be about unicorns
Then the user should be told that no such page exists.

BDD на самом деле не о тестировании. Речь идет о разговорах, которые позволяют вам открыть для себя другие вещи, о которых вы не думали, и разрабатывать общее понимание того, что должно произойти. Например, что происходит, когда обычный пользователь пытается получить доступ к странице администратора? Должны ли они получить «отказанный доступа» или просто не знать, что страница есть? Что если страница удалена? Эти дискуссии более полезны, чем пытаться все закрепить.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top