Различия между тестом и спецификацией


12

У меня возникла проблема с концепцией, и я не могу найти информацию о различиях между Test (UnitTest и т. Д.) И Spec (Rspec и т. Д.).

Насколько я знаю, спецификации - это интеграционные тесты, а тесты - в UnitTest, но только это.

Можете ли вы объяснить, в чем различия?

Ответы:


12

Посмотрите на следующую диаграмму. Он иллюстрирует взаимосвязь между разработкой на основе тестирования (TDD) и разработкой на основе приемочных испытаний (ATDD):

Диаграмма развития, основанная на приемочных тестах

Обратите внимание, что внутренний цикл, TDD, окружен внешним циклом, ATDD. Требования (показанные в графе Acceptance Criteria) определяют создание автоматических приемочных тестов, которые, в свою очередь, стимулируют создание модульных тестов для реализации.

В целом, RSpec будет использоваться в тех ситуациях, когда вы хотите выразить тесты в удобной для бизнес-аналитики форме, а именно при создании автоматических приемочных тестов (коричневый круг); тогда как платформы модульных тестов, такие как nUnit, более специализированы для такого рода модульных тестов, написанных с точки зрения TDD разработчика на уровне реализации (желтый круг).


Хорошим примером является хеш-таблица, которая требует подробных модульных тестов, поскольку ожидается, что она будет работать для всех возможных входных данных, а не только для небольшого набора примеров в приемочных тестах. Однако код, который рассчитывает скидку для «хорошего» покупателя, вероятно, будет хорошо охвачен приемочными тестами, поэтому может потребоваться отсутствие или несколько юнит-тестов.
Ян

3

Хорошо, у нас есть несколько различных терминов, так что вот что происходит

  • У нас есть модульное тестирование. Другими уровнями являются интеграционное тестирование, тестирование производительности и т. Д.
  • rspec может использоваться для многих из вышеперечисленных уровней тестирования, например, в отношении моделей, контроллеров и представлений через тесты функций Capybara.
  • Слово «спецификация» происходит от спецификации, которая лежит в основе теста - она ​​что-то указывает.
  • rspec - платформа, используемая для тестирования браузеров agaist, часто используемая в приложениях Ruby on Rails.
  • spec-файлы - rspec-файл обычно заканчивается на _spec.rb и часто называется spec-файлами.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.