Skip to content

Instantly share code, notes, and snippets.

@danzilio
Last active October 21, 2015 16:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save danzilio/fc01f3ff64fcb7275fdc to your computer and use it in GitHub Desktop.
Save danzilio/fc01f3ff64fcb7275fdc to your computer and use it in GitHub Desktop.
Good vs Bad Tests
# This basically tests that Puppet works. It just re-creates your Puppet code in a different DSL.
# ANY change to the existing params on this resource will require that you update your tests.
describe 'foo' do
let(:params) { :param => 'somevalue' }
it do
should contain_file('bar').with({
:ensure => present,
:owner => root,
:group => root,
:mode => 0644,
:content => 'somevalue'
})
end
end
# Better. This tests the interface instead of the implementation. You can change the implementation
# without updating the tests, as long as the interface stays the same. This is how you refactor!
describe 'foo' do
let(:params) { :param => 'somevalue' }
it 'should contain the expected resources' do
should contain_file('bar').with_content(/^somevalue$/)
end
end
class foo (
$param = value,
) {
file { 'bar':
ensure => present,
owner => root,
group => root,
mode => 0644,
content => $param,
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment