【发布时间】:2016-09-20 01:59:32
【问题描述】:
举个最简单的例子
# 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 时,Chef 会不会失败?显然这不应该工作:
link '/none' do
owner 'r<oo=t'
to '/usr'
end
但是chef-apply (12.13.37) 并没有抱怨r<oo=t 不匹配owner_valid_regex。它只是收敛,好像没有提供owner。
【问题讨论】:
标签: ruby chef-infra cookbook lwrp