给定最小的例子
# resources/novowel.rb
resource_name :novowel
property :name, String, name_property: true, regex: /\A[^aeiou]\z/
我想写单元测试spec/unit/resources/novowel_spec.rb
- 名称的资源“novowel”应接受“k”
- 名称的资源“novowel”应接受“&”
- 名称的资源“novowel”不应接受“a”
- 名称的资源“novowel”不应接受“mm”
确保即使由于某种原因更改了正则表达式,名称属性仍然可以正常工作。
我浏览了几本顶级厨师食谱,但找不到此类测试的参考资料。
怎么做到呢?Chef::Resource
如果这有助于完成任务,请随意提供具有显式子类化的更复杂示例。
更新 1:当属性不适合时,厨师不会失败regex
吗?显然这不应该工作:
link '/none' do
owner 'r<oo=t'
to '/usr'
end
但是chef-apply
(12.13.37) 并没有抱怨r<oo=t
not matching owner_valid_regex
。它只是收敛,好像owner
没有提供一样。