Использование FitNesse, а не NUnit - PullRequest
7 голосов
/ 10 февраля 2010

Как я понял, есть пара случаев, когда вы можете захотеть использовать FitNesse.

  • Вы хотите выполнить приемочное тестирование, а не юнит-тестирование.
  • Вы хотите использовать его как средство общения с держателем кола.
  • Вы хотите выполнять крупномасштабные тесты, а не гранулярные.
  • Вы хотите, чтобы нетехнические люди писали тесты.

Мое личное мнение и опыт:

  • Я могу провести приемочное тестирование, используя такие инструменты, как NUnit. Fitnesse - это просто среда для вызова открытых методов в сборке .NET, что можно сделать с помощью NUnit.
  • Заинтересованные стороны говорят мне, чего они хотят. Они редко интересуются написанием тестов по фитнесу. Кажется, у них есть другие / лучшие / более важные дела.
  • Вы можете проводить масштабные тесты, используя FitNesse. Насколько я знаю, вам придется вводить все данные для этих крупномасштабных тестов в простой текстовый редактор в веб-браузере. Как это было бы проще, чем чтение входных данных из текстового файла на диске, из файла Excel или базы данных? Конечно, вы можете указать путь к файлу на диске в веб-интерфейсе, но какое преимущество это даст по сравнению с использованием NUnit для чтения того же файла?
  • Эти нетехнические люди должны писать код в соответствии с очень специфическим синтаксисом в текстовом редакторе на веб-сайте, который позже будет вызывать сборки .NET. Код .NET становится беспорядочным, так как нетехнический человек не знает программирования, но он все еще указывает, как должна работать сборка.

Может кто-нибудь поделиться некоторыми другими мнениями по этому вопросу? Как FitNesse был ценным для вас?

Ответы [ 3 ]

8 голосов
/ 10 февраля 2010

Так что да, вы можете написать приемочные тесты в nUnit, но это не соответствует действительности. Предполагается, что Fitnesse является альтернативным пользовательским интерфейсом для вашего приложения, который выражает подробный поток утверждений:

Пользователь делает это Пользователь делает это пользователь теперь видит это

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

Инструменты модульного тестирования на самом деле не предназначены для этого, вы можете это сделать? Конечно. Но это странно.

Другая вещь, на мой взгляд, в том, что вы немного заблуждаетесь в мысли, что «вы хотите, чтобы нетехнические люди писали тесты». Fitnesse - это инструмент для сотрудничества. Вы должны писать тесты с заинтересованными сторонами, давать и получать отзывы. Тогда, это имеет преимущество того, чтобы быть документацией. Таким образом, год спустя, когда кто-то захочет узнать, почему система работает так, как она работает, вы можете просмотреть тесты, отображаемые таким образом, чтобы БА мог понять (в отличие от nUnit), и сказать, хорошо, вот оно, должны ли мы изменить

5 голосов
/ 10 февраля 2010

FitNesse предназначен для совершенно иного назначения, чем NUnit. Выполнение приемочного тестирования с помощью NUnit означает, прежде всего, что весь набор тестов должен быть написан в коде. FitNesse разработан с намерением, что вы, при определенном уровне подготовки, можете записать свои тесты в данные. Это очень разные режимы работы, и они применяются к очень разным ресурсам. Они также поощряют совершенно разные взгляды на мир - разработчик тест-кейсов FitNesse работает в предположении, что произойдет очень простое и простое преобразование, тогда как пользователь NUnit обладает большими знаниями о том, как это преобразование работает и имеет хуки в систему, которая не имеет ничего общего с самим преобразованием.

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

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

1 голос
/ 10 февраля 2010

Типичный ответ на ваш вопрос

"Тесты более высокого уровня (например, приемочные) хороши до тех пор, пока вы не обнаружите проблему. В этот момент, если у вас нет модульных тестов, единственное, что вы знаете, это то, что что-то сломано-- не конкретно что сломано или где исправление должно быть применено. "

...