If you look in spec/classes, there are ```_spec.rb``` files that describe classes. What you'd do, is write a ```puppet_server_spec.rb``` that will describe the ```puppet::server``` class. Then in that file, I'd write two 2 cases (using describe) with something as follows:

```ruby
require 'spec_helper'

describe 'puppet' do

  let :facts do
    {
      :fqdn       => 'puppetmaster.example.com',
      :clientcert => 'puppetmaster.example.com',
    }
  end

  describe 'with no custom parameters' do
    let :pre_condition do
      "class {'::puppet::server': }"
    end

    # Do my tests here
  end

  describe 'without foreman' do
    let :pre_condition do
      "class {'::puppet::server':
        reports        => store,
        external_nodes => undef,
      }"
    end

    # Do my tests here
  end

end
```

See http://rspec-puppet.com/ for more details (even though it's fairly limited).

For running the tests themselves, I recommend using bundler:

```sh
bundle install # Install the dependencies
bundle exec rake # Actually run the tests
```

Last but not least, do give a shout if you run into problems. We've recently started using tests more and appreciate all the help we can get expanding them :)