Рубрики
Rspec Программирование Тестирование

Когда использовать «include_examples», а когда «it_behaves_like» в общих тестах?

Если мы поместим общий код в отдельный файл то у нас есть 2 метода которые помогут нам добавить этот функционал в наш тест. Пример есть в книге Rspec 3 стр. 176

Если обобщить:

it_behaves_like почти всегда то, что вам нужно. Это гарантирует, что содержимое общей группы не «просачивается» в окружающий контекст и не взаимодействует с другими вашими примерами удивительным образом.
Рекомендуем использовать include_examples только в том случае, если вы уверены, что контекст общей группы не будет конфликтовать ни с чем в окружающей группе, и у вас есть особая причина для его использования. Одна из таких причин — ясность: иногда выходные данные вашей спецификации (с использованием средства форматирования документации) будут читаться более разборчиво без дополнительной вложенности.

Так же мы можем передать блок, а не только аргумент в ‘it_behaves_like’ метод.

require 'tempfile'

RSpec.describe FileKVStore do 
  it_behaves_like 'KV store' do
    let(:tempfile) { Tempfile.new('kv.store') }
    let(:kv_store) { FileKVStore.new(tempfile.path) } 
  end
endCode language: Ruby (ruby)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *