Для Rails по умолчанию вы можете добавить так называемый ActiveModel::Lint::Tests
, чтобы узнать, соответствуют ли ваши модели частям ActiveModel.Как использовать ActiveModel :: Lint :: Тесты в Rspec
Я бы назвал это или его эквивалент в своих тестах Rspec.
- Я не хочу проверять точное поведение: тесты на линт указывают только на наличие определенного интерфейса. Я хочу только указать, что интерфейс существует.
- Я скорее не test too close implementation. Простое тестирование того, что модуль включен, на самом деле не то же самое, что тестирование интерфейса существует.
Есть ли трюк для запуска и включить ядро Rails ActiveModel::Lint::Tests
в примерах rspec? Существуют ли альтернативы, специально построенные для Rspec, которые проводят такие тесты?
Некоторые фон:
Я строю модели, которые не наследуются от Activerecord::Base
, но вместо того, чтобы действовать в качестве фабрик или государственных машин. В Rails также известны как служебные объекты. Они должны восприниматься как ActiveModels для пользователя. Такие вещи, как
@services << CompositeService.new(name: 'foo', children: [{ name: 'bar' }])
render @services
должно быть возможным. Таким образом, такой CompositeService
должен иметь именование activemodel, частичные пути, кеширование-идентификаторы и т. Д.