Какие типы дел следует рассматривать в рамках Junits, а какие - в Cucumber - PullRequest
0 голосов
/ 26 мая 2020

Разработчики обычно пишут тестовые примеры с Junits

Тестировщики обычно пишут тестовые примеры с Cucumber

Меня смущает, чем они (Cucumber и Junit) разные, если в конце оба предназначены для проверки logi c нашего кода!

Верно ли мое предположение , если я скажу ...

  • тестирование простого метода выполняется Junits

  • сложный сценарий ios, у нас есть Cucumber

Ответы [ 3 ]

2 голосов
/ 28 мая 2020

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

Cucumber - это инструмент, используемый для описания поведения. Каждый cuke будет exercise намного большим фрагментом кода.

Эти два вида тестов очень разные. Настолько отличается, что большинство энтузиастов Cucumber не хотят использовать слово test (https://cucumber.io/blog/collaboration/the-worlds-most-misunderstood-collaboration-tool/)

Scenar ios вовсе не о проверке logi c вашего кода , они не имеют ничего общего с кодом. Они описывают поведение вашего приложения и поддерживают развитие этого поведения. После того, как сценарий и поведение были реализованы, они используются для подтверждения того, что поведение «вероятно» по-прежнему работает должным образом.

Модульные тесты - это все о коде, они написаны в коде и (в идеале) подключаются напрямую кодировать. Их определенно можно использовать для проверки logi c вашего кода.

Есть и другие важные отличия

Время выполнения

  • Scenar ios медленные
  • Модульные тесты бывают быстрыми (если они не написаны плохо)

Это немалая разница. Оптимально написанный модульный тест может быть в 1000 раз быстрее, чем оптимально написанный сценарий.

Выразительность и мощность

  • сценарий ios использует естественный язык для express самих себя. Они используют абстракцию и именование, чтобы обладать властью. Хорошо написанные cukes очень удобны для чтения бизнесом.

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

Резюме

У вас есть две очень разные вещи, которые работают по-разному, используя разные инструменты (естественный язык против кода). Поэтому неудивительно, что у вас есть разные инструменты.

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

1 голос
/ 26 мая 2020

Cucumber - это структура, основанная на поведенческом дизайне (BDD). Где вы можете проверить поведение фрагмента кода.

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

Вы можете предпочесть Огурец против Джунита для большей ясности.

0 голосов
/ 28 мая 2020

Итак, я приведу пример, поясняющий разницу между доменом Cucumber и Junit

Рассматривая пример веб-приложения ..

  • Junits будет тестировать code logi c методов, задействованных на уровне контроллера, службы и DAO

  • Cucumber Тесты для этого приложения будут содержать случаи, имеющие различные запросы REST, предоставляемые API этого приложения. [Он будет иметь тестовые запросы для Get, Post, Put, Delete с несколькими данными для каждого запроса, в зависимости от случая]

...