Как функции specflow ссылаются на модульные тесты в проектах asp.net webforms? - PullRequest
0 голосов
/ 10 августа 2011

Например, если я напишу Добавить функцию клиента, которая может выглядеть так:

Сценарий: Добавить клиента Учитывая, что я на странице клиента Когда я ввожу логин затем я нажимаю Добавить И я должен увидеть только что добавленное сообщение подтверждения клиента

Я начинаю писать код в watin, чтобы открыть браузер и перейти на страницу клиента. Который не существует на данный момент.

Вопросы: 1) затем перейти к юнит-тестам и написать юнит-тест для несуществующей страницы? в MVC это будет контроллер, но в веб-формах asp.net это тот же тест, что и в определении шага. 2) Как юнит-тест связан с определением шага? Допустим, в конце проекта у меня есть множество функций и множество модульных тестов. Тогда одна из функций начинает выходить из строя, если я посмотрю на это, как я узнаю, какие юнит-тесты соответствуют ей? Или это вообще имеет значение?

Я не уверен, является ли это вопросом лучшей практики, или это то, что люди считают правильным.

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

1 Ответ

1 голос
/ 24 августа 2011

Одна из замечательных особенностей specflow (и cucumber ...) заключается в том, что вы можете написать тест до того, как появится какая-либо страница. Так что я бы сделал именно то, что вы планировали сделать.

1) Напишите тест спецификации потока, который описывает, как вы хотите работать со страницей. Похоже, у вас это уже есть. 2) Запустите тест. Первая строка потерпит неудачу (если я нахожусь на странице клиента).

Теперь у вас есть выбор. Вы просто хотите написать код, который запускает Watin и переходит на страницу клиента? Хорошо, сделай это; затем напишите страницу клиента (достаточно, чтобы первая строка теста прошла).

Или признайте, что для вашего теста требуется страница клиента. Здесь есть что проверить: все поля данных существуют? Правильно ли выполняется проверка ввода? Если я отправлю сообщение на сервер, получу ли я правильный ответ? Если я отправляю сообщение на сервер, правильно ли обновляется БД? И так далее. Некоторые из них звучат как модульные тесты (бизнес-логика, которая принимает данные формы и сохраняет их в БД); некоторые походят на тесты пользовательского интерфейса, которые были бы хороши с SpecFlow (детали страницы, проверка), а некоторые походят на интеграционные тесты (вероятно, хороши с specflow).

Как только вы написали все те, и они прошли, вернитесь к исходному тесту и получите второй шаг для прохождения (я нажимаю ...)

и т. Д.

Чтобы ответить на ваш второй вопрос, мы надеемся, что вы выполняете модульные тесты и тесты спецпотока достаточно часто, чтобы в случае сбоя теста это происходило из-за того, что вы сделали за последние несколько минут. Не должно быть слишком сложно увидеть, что не получилось, и сопоставить его с тем, что вы только что сделали.

Если вы не проводите свои тесты так часто, тогда вам следует.

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