【发布时间】:2015-06-26 21:54:21
【问题描述】:
对于默认 Rails,您可以添加所谓的 ActiveModel::Lint::Tests 以查看您的模型是否符合 ActiveModel 的某些部分。
我想在我的 Rspec 测试中调用这些或等效的名称。
- 我不想测试确切的行为:lint 测试仅说明存在某个接口。我只想说明接口存在。
- 我宁愿不test too close implementation。仅仅测试包含的模块与测试存在的接口并不完全相同。
在 rspec 示例中运行和包含 Rails 核心 ActiveModel::Lint::Tests 是否有技巧?是否有专门为 Rspec 构建的替代方案来运行此类 lint 测试?
一些背景:
我正在构建的模型不继承自 Activerecord::Base,而是充当工厂或状态机。在 Rails 中也称为服务对象。这些对用户来说应该感觉像是 ActiveModel。像
@services << CompositeService.new(name: 'foo', children: [{ name: 'bar' }])
render @services
应该是可以的。那么这样的CompositeService 应该有activemodel 命名、部分路径、caching-ids 等等。
【问题讨论】:
标签: rspec activemodel lint