我有以下表现sudo的用户,加载模板文件如何添加模板文件中的RSpec木偶
class sudo {
if $::operatingsystemmajrelease < 7 {
$variable = $::operatingsystemmajrelease ? {
'6' => $::fqdn,
}
file { '/etc/sudoers' :
ensure => present,
owner => 'root',
group => 'root',
mode => '0440',
content => template('sudo/sudoers.erb'),
}
}
}
下面是我的RSpec的文件
vim test_spec.rb
require 'spec_helper'
describe 'sudo' do
it { should contain_class('sudo')}
let(:facts) {{:operatingsystemmajrelease => 6}}
if (6 < 7)
context "testing sudo template with rspec" do
let(:params) {{:content => template('sudo/sudoers.erb')}}
it {should contain_file('/etc/sudoers').with(
'ensure' => 'present',
'owner' => 'root',
'group' => 'root',
'mode' => '0440',
'content' => template('sudo/sudoers.erb'))}
end
end
end
得到以下错误,当运行“耙规范“
.F
Failures:
1) sudo testing sudo template with rspec
Failure/Error: 'content' => template('sudo/sudoers.erb'))}
NoMethodError:
undefined method `template' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1:0x7f5802e70bd8>
# ./spec/classes/test_spec.rb:17
Finished in 0.16067 seconds
2 examples, 1 failure
Failed examples:
rspec ./spec/classes/test_spec.rb:12 # sudo testing sudo template with rspec
rake aborted!
ruby -S rspec spec/classes/test_spec.rb failed
任何人都可以指导我如何用rspec-puppet测试模板。我冲浪网也打破了我的头两天以上都没有帮助。
谢谢,但我尝试不让(:params),但它的工作。我们是否需要为这种情况创建参数。 – Puppeteer
@Puppeteer我不害怕。 –
下面是我没有param的spec文件,“describe'sudo'do it {should contain_class('sudo')} let(:facts){{:operatingsystemmajrelease => 6}} if(6 <7)context”testing sudo template ('确保'=>'present','owner'=>'root','group'=>'root','mode'= rspec“do it {should contain_file('/ etc/sudoers')。 >'0440')}它{应该包含文件('/ etc/sudoers')。with_content(/ Defaults requiretty /)} end end end“ – Puppeteer