如何在 ServerSpec 中不包含匹配器的情况下制作相同的工作代码
How can I make same working code without contain matcher in ServerSpec
describe file('/etc/checkfiles/server.cfg') do
its(:content) {
should contain("\/usr\/lib64\/nagios\/plugins\/check_procs -w 150 -c 200")
.after(/command\[check_total_procs\]\=/)
}
end
我像这段代码一样使用包含匹配器,但它会被淘汰。
'server.cfg' 中有很多行,我只想检查 1 行。
如何在不包含匹配器的情况下制作相同的工作代码?
docs注意:
Instead of contain
, you can use its(:content)
and any standard rspec matchers. The matcher contain
will be obsoleted.
我倾向于说维护者可能没有正确考虑这个变化,你可能会建议他实际上不应该弃用这个特性。
尽管如此,使用正则表达式很容易解决这个问题:
describe file('/etc/checkfiles/server.cfg') do
its(:content) {
should match /command\[check_total_procs].*check_procs -w 150 -c 200/m
}
end
使用多行正则表达式的关键见解 //m
,允许您说文件中一个字符串接一个字符串。
describe file('/etc/checkfiles/server.cfg') do
its(:content) {
should contain("\/usr\/lib64\/nagios\/plugins\/check_procs -w 150 -c 200")
.after(/command\[check_total_procs\]\=/)
}
end
我像这段代码一样使用包含匹配器,但它会被淘汰。 'server.cfg' 中有很多行,我只想检查 1 行。 如何在不包含匹配器的情况下制作相同的工作代码?
docs注意:
Instead of
contain
, you can useits(:content)
and any standard rspec matchers. The matchercontain
will be obsoleted.
我倾向于说维护者可能没有正确考虑这个变化,你可能会建议他实际上不应该弃用这个特性。
尽管如此,使用正则表达式很容易解决这个问题:
describe file('/etc/checkfiles/server.cfg') do
its(:content) {
should match /command\[check_total_procs].*check_procs -w 150 -c 200/m
}
end
使用多行正则表达式的关键见解 //m
,允许您说文件中一个字符串接一个字符串。