2014-01-17 2 views
0

Я был разработчиком приложений на основе Windows и являюсь веб-разработчиком. В течение последних нескольких лет я пытался следовать принципам Specification by example в проекте. В последнем проекте, в котором я участвовал, наша команда использовала WPF с шаблоном MVVM (Model-View-ViewModel), и я попробовал SpecFlow для тестирования. (Ну .. охват SpecFlow был очень низким, хотя его официально не приняли из нашей команды, и я не мог потратить на это достаточно времени.)Cucumber.js тестирование без использования каких-либо веб-браузеров (без головных или реальных веб-браузеров)

Теперь наша команда начала переносить существующее приложение Windows на веб-сайт и решил использовать cucumber.js в качестве инструмента для реализации «Спецификация на примере».

Когда я пытался SpecFlow раньше, я сделал все определения шага для проверки уровня ViewModel вместо View, и это был единственный способ на самом деле. То, что меня путают с cucumber.js, состоит в том, что большинство примеров демонстрируют, как тестировать функции через веб-браузеры (безголовые или реальные).

Если функции специфицируют поведение ui, тогда доступ к элементу DOM и оценка его значения имеют смысл. Однако, насколько я узнал о спецификациях примерами, тестирование непосредственно под уровнем пользовательского интерфейса рекомендуется вместо элементов пользовательского интерфейса.

Похоже, что большинство современных веб-приложений имеют такие слои, как MVC, MVVM (knouckout.js) в настоящее время. В нашем веб-приложении будет использоваться Angularjs, и это моя теория.

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

Является ли этот подход отсутствием чего-то или неправильного с cucumber.js? Пожалуйста, дайте мне понять и исправьте меня, если я ошибаюсь.

Заранее благодарен!

ответ

1

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

+0

Похоже, что мой вопрос недостаточно ясен. Позвольте мне прояснить мое мышление. Я имел в виду, что хочу писать текстовые файлы более абстрактными и больше сосредотачиваться на намерениях пользователей и поведения на высоком уровне вместо того, чтобы писать конкретные действия пользователя по конкретным элементам пользовательского интерфейса, таким как скрипты. Я хочу, чтобы уровень описания тестовых представлений не был тесно связан с элементами пользовательского интерфейса. Я предполагаю, что уровень пользовательского интерфейса чаще изменен на основе книги SBE и моих небольших впечатлений. Я хочу знать, что этот подход не рекомендуется для веб-разработки или с cucumber.js по некоторым причинам. –

Смежные вопросы