Поскольку я понял это, существует несколько случаев, когда можно хотеть использовать FitNesse.
Мое личное мнение и опыт:
Кто-то может совместно использовать некоторые другие мнения о предмете? Как FitNesse были ценны Вам?
Типичным ответом на ваш вопрос является
"Тестирование более высокого уровня (например, приемка) отлично подходит до тех пор, пока вы не найдете проблему. В этот момент, если у вас нет юнит-тестов, то единственное, что вам известно, это то, что что-то сломано - не конкретно что сломано или где должно быть применено исправление"
.FitNesse предназначен для совершенно иных целей, чем NUnit. Проведение приемочного тестирования с помощью NUnit означает, прежде всего, что весь набор тестов должен быть написан в коде. FitNesse разработан с расчетом на то, что при определенном уровне подготовки вы сможете писать тесты в данных. Это совершенно разные режимы работы, и они применяются к совершенно разным ресурсам. Они также поощряют очень разные взгляды на мир - разработчик тестовых примеров FitNesse работает исходя из предположения, что произойдет очень простое, прямолинейное преобразование, в то время как пользователь NUnit обладает большим количеством знаний о том, как это преобразование работает, и имеет крючки в системе, которые не имеют никакого отношения к самому преобразованию.
Если вы не можете заставить заинтересованных лиц писать сценарии использования и функциональные тесты, то вам нужен заместитель этих заинтересованных лиц, и именно здесь приходит на помощь традиционный отдел контроля качества. Отсутствие заинтересованных сторон для выполнения этих работ не является оправданием для их невыполнения.
Преимущество использования FitNesse для считывания данных через пользовательский формат довольно простое: Это стандартный способ ввода тестовых примеров. Если вы не видите в этом выгоды, возможно, вам нужно потратить некоторое время на то, чтобы пройти по пути, который вы описываете, потому что в конце концов вы столкнетесь с некоторыми стенами, и, возможно, они помогут вам понять.
Итак, да, вы могли бы написать приемочные тесты в nUnit, но это упускает суть. Предполагается, что Fitnesse является альтернативным пользовательским интерфейсом для вашего приложения, который выражает подробный поток утверждений:
Пользователь делает это Пользователь делает то, что теперь пользователь видит это
В идеале фитнес-слой может располагаться прямо над самым верхним уровнем вашего приложения, заменяя последний слой рендеринга.
Инструменты модульного тестирования на самом деле не предназначены для этого, вы можете это сделать? Конечно. Но это странно.
Еще одна вещь, на мой взгляд, заключается в том, что вы немного ошибаетесь в том, что «вы хотите, чтобы тесты писали нетехнические люди». Fitnesse - это инструмент для сотрудничества. Вы должны писать тесты С заинтересованными сторонами, давать и получать отзывы. Затем он может быть документацией. Итак, год спустя, когда кто-то захочет узнать, почему система работает так, как она работает, вы можете открыть тесты, отображаемые таким образом, чтобы БА понимал (в отличие от nUnit), и сказать: хорошо, вот оно, если мы его изменим. ?