我试图为一个简单的木偶类编写我的第一个rspec测试。这是类,rspec测试和结果。我是rspec的新手,想知道我在这里做错了什么。我按照http://rspec-puppet.com/setup/中的说明为这些测试配置了rspec-puppet。谢谢。
cron模块的类示例 init.pp
class cron {
service { 'crond' :
ensure => running,
enable => true
}
}
Rspec测试
require '/etc/puppetlabs/puppet/modules/cron/spec/spec_helper'
describe 'cron', :type => :module do
it { should contain_class('cron') }
it do should contain_service('crond').with(
'ensure' => 'running',
'enable' => 'true'
) end
end
结果
FF
Failures:
1) cron
Failure/Error: it { should contain_class('cron') }
NoMethodError:
undefined method `contain_class' for #<RSpec::Core::ExampleGroup::Nested_1:0x00000001c66d70>
# ./cron_spec.rb:5:in `block (2 levels) in <top (required)>'
2) cron
Failure/Error: it do should contain_service('crond').with(
NoMethodError:
undefined method `contain_service' for #<RSpec::Core::ExampleGroup::Nested_1:0x00000001c867b0>
# ./cron_spec.rb:6:in `block (2 levels) in <top (required)>'
Finished in 0.00237 seconds
2 examples, 2 failures
Failed examples:
rspec ./cron_spec.rb:5 # cron
rspec ./cron_spec.rb:6 # cron
答案 0 :(得分:2)
你从哪里拿起
describe 'cron', :type => :module
语法?这可能已经过时了。
使用当前版本的rspec-puppet
,您可以描述
你基本上只想把你的规范放到spec/classes/cron_spec.rb
,这应该是你工作的一半,例如。
# spec/classes/cron.rb
require "#{File.join(File.dirname(__FILE__),'..','spec_helper.rb')}"
describe 'cron' do
it { should contain_service('crond').with('ensure' => 'running') }
it { should contain_service('crond').with('enable' => 'true') }
end
优良作法是对每个属性值进行不同的测试,以便更准确地识别未来可能的回归。
请参阅README。
有关结构良好的模块测试套件的一个很好的示例,请参阅example42's modules。