有些人坚持在rspec中使用变量。 这是我的params.pp
case $::osfamily{
Debian: {
$ssh_daemon = "ssh"
}
Redhat: {
$ssh_daemon = "sshd"
}
在rspec测试中,我需要使用变量$ ssh_daemon,如下所示:
it { should contain_service("${ssh_daemon}").with(
:ensure => 'running',
:enable => 'true',
)}
这是我的ssh.pp文件
service { "${ssh_daemon}":
ensure => running,
enable => true,
}
如何编写此变量($ ssh_daemon)以使此测试起作用?
答案 0 :(得分:1)
您可以通过模拟Facter输出来完成此操作。
类似的东西:
context 'service on debian' do
let(:facts) { { :osfamily => 'Debian' } }
it { should contain_service("ssh") }
end
context 'service on redhat' do
let(:facts) { { :osfamily => 'RedHat' } }
it { should contain_service("sshd") }
end