serverspec の matchers 確認

例えば、lib/serverspec/matchers/be_directory.rb は以下な記述。

RSpec::Matchers.define :be_directory do
  match do |actual|
    backend.check_directory(example, actual)
  end
end

check_directory という手続きは lib/serverspec/backend/puppet.rb で定義されてました。何故に Puppet クラスなのか。

module Serverspec
  module Backend
    class Puppet < Exec # Use Exec methods as fallbacks

      def check_directory(example, directory)
        d = ::Puppet::Type::File.new(:name => directory, :ensure => 'directory')
        d.insync?(d.retrieve)
      end

つうかこれ、そもそも何の試験なんだろ (を
be_directory ってことはそのまんまのソレなのかな。ええと、リファレンス見てもアレなのでソースげとするか。

$ git clone git://github.com/puppetlabs/puppet.git

つうか puppet なソレはハードル高いな。てか、そもそもこれを使ってどんな試験を書いているのか、というのも気になります。serverspec で用意されてるマッチャのドキュメントは以下な模様。

見てみるに service が動いてる? 的なマッチャもありますね。つうか当り前なのかどうかアレですがマッチャが少ない感。
大項目として

  • Cron
  • Commands
  • Files/Directories
  • Iptables
  • Linux Kernel Paremeters
  • Packages
  • Ports
  • SELinux
  • Services
  • Users/Groups

というものがあるみたい。

別途で

wordpress の試験をでっちあげてみる方向にて。