对于默认的Rails,您可以添加所谓的ActiveModel::Lint::Tests
以查看您的模型是否符合ActiveModel的部分内容。
我想在我的Rspec测试中称这些或其等价物。
是否有一个技巧可以运行并在rspec示例中包含Rails核心ActiveModel::Lint::Tests
?是否有替代品,专门为Rspec制造,进行这种棉绒测试?
一些背景:
我正在构建不从Activerecord::Base
继承的模型,而是充当工厂或状态机。在Rails中也称为服务对象。这些应该感觉像用户的ActiveModels。像
@services << CompositeService.new(name: 'foo', children: [{ name: 'bar' }])
render @services
应该是可能的。这样的CompositeService
应该具有activemodel命名,部分路径,缓存id等。
答案 0 :(得分:0)
我正在编写一个提供with open('file.txt') as f:
print(f.readline().translate(None,"'[]\n").split(","))
['a', 'b', 'c']
- 兼容模型并使用RSpec 3.x的gem。
为了获得lint测试,我添加了ActiveModel
作为开发依赖项。这也会带来activemodel
及其ActiveSupport
。我想我可以像过去那样使用this gist之类的内容,但遇到issue试图让测试使用Minitest
的{{1}}。
我最终将这些放在一起(归功于要点的作者)并将其放入Minitest
:
assert
到目前为止,这似乎有效,我收到如下错误消息:
spec/support
这不太理想,但现在对我来说很好。棉绒测试非常简单 从头开始实现共享示例将是非常简单的 (参见the source),但这样我就可以依靠gem来使测试保持最新状态。