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

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

При установке 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 (и чуток собственно код).

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

Источники

  • Module: RSpec

  • Module: RSpec::Expectations

  • Module: RSpec::Mocks

Источник: https://habr.com/ru/articles/731538/


Интересные статьи

Интересные статьи

Бот конвертирует голосовые сообщения на русском языке в текстовый формат, также работает с загруженными одноканальными аудиофайлами. Его можно использовать даже в групповых чатах. В основе решения — т...
Новое это давно забытое старое... История о том как случайно получилось найти супер способ передать параметры в независимый javascript виджет. GET параметры? Нет кое-что получше.
На карте 2ГИС очень много картинок — те же знаки дорожного движения и логотипы компаний. Графические API, которые в наши карты предоставляют Android и iOS, обычно не могут рисовать векторную графику н...
Исторически сложилось что разработка программного обеспечения проводиться посредством набора обычного текста. Вот уже несколько десятилетий основной подход к программиров...
В данной статье решим 23-е задание с сайта pwnable.kr, узнаем, что такое stack canary и подключим libc в python. Организационная информацияСпециально для тех, кто хочет узнавать что-то новое...