Pull to refresh

RSpec библиотеки кратко и структурно

Level of difficultyEasy
Reading time1 min
Views1.1K

При установке rspec я обнаружила, что установила не одну, а несколько библиотек. Я задумалась - почему?

В Readme репозитория rspec-metagem написано, что rspec- это есть rspec-metagem, который зависит от rspec-core, rspec-expectations and rspec-mocks. Команда ниже установит три независимые по сути библиотеки:

gem install rspec

Выжимка о свойствах каждой библиотеки

rspec-core

  • делает команду rspec , которой мы запускаем собственно тесты, доступной из консоли;

  • делает доступным команды, которые создают структуру тестов ( describe, context, it, specify, example, shared_examples, include_examples, shared_context, include_context, let, beforeи др. хуки, described_class).

rspec-expectations

  • обеспечивает команду expect со всем его хозяйством (RSpec::Matchers)

rspec-mocks

  • поддерживает методы для создания ненастоящих дублей объектов (test-doubles) ( double, instance_double, object_spy и др.);

  • даёт возможность создать заглушку для методов дубля-объекта с помощью allow, имитируя значение или последовательность значений, возвращаещаемое методом самого объекта;

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

На рисунке ниже розовенький - rspec-mock, бирюзовый - rspec-expectations, а все остальное - rspec-core (и чуток собственно код).

Пример
Пример

Источники

Tags:
Hubs:
Total votes 1: ↑1 and ↓0+1
Comments9

Articles