我有以下表現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