對於默認的Rails,您可以添加所謂的ActiveModel::Lint::Tests
以查看您的模型是否遵守ActiveModel的某些部分。如何在Rspec中使用ActiveModel :: Lint :: Tests
我想在我的Rspec測試中調用這些或其等價物。
- 我不想測試確切的行爲:lint只測試某個特定接口存在的規格。我只想規定接口存在。我不是test too close implementation。僅僅測試包含模塊與測試接口是否存在並不相同。
有沒有一個技巧可以運行,並在rspec示例中包含Rails核心ActiveModel::Lint::Tests
?是否有替代方案,專門爲Rspec構建,可以進行這種檢測?
一些背景:
我建立不從Activerecord::Base
繼承,而是作爲工廠或狀態機模型。在Rails中也被稱爲服務對象。這些應該像用戶的ActiveModels一樣。像
@services << CompositeService.new(name: 'foo', children: [{ name: 'bar' }])
render @services
應該是可能的。那麼這樣的一個CompositeService
應該具有activemodel命名,部分路徑,緩存id等等。