2016-05-25 16 views
1

シェフ、キッチン、および迷彩を使用してレシピがmariadb-serverを設定しているかどうかを確認するserverspecテストを、debian jessieボックスで作成しようとしています。Serverspecパッケージのチェックで常にtrueが返される

レシピは単純です:

# cookbooks/mariadb/recipes/server.rb 
package 'mariadb-server' do 
    action :install 
end 

私が書いたそれのための仕様は次のとおりです。

# cookbooks/mariadb/test/integration/default/serverspec/server_spec.rb 
require 'spec_helper' 

describe 'mariadb::server' do 
    context package('mariadb-server') do 
    it 'is installed' do 
     expect be_installed 
    end 
    end 
end 

kitchen verifyを実行している場合しかし、これは関係なく、常にパッケージの状態の、trueを返します。私が汚れた箱の中に入ってパッケージを取り除いてからkitchen verifyを実行すると、私も肯定的な結果を得ています。

パッケージをランダムな文字列に変更した場合でも、 context package('this-is-not-a-package') doテスト結果は真です。

私はここで間違っていますか?

答えて

2

もっと一般的な意味では、これはRSpec 3のマッチャー構文に従っていませんでした。

あなたは好きなことをやって検討することがあります。

describe 'mariadb::server' do 
    describe package('mariadb-server') do 
    it { expect(subject).to be_installed } 
    end 
end 

serverspecはRSpecの出力のための文書フォーマッタを使用していますので、これはクリーナーと意志出力クリーナーを探します。

ここで何が起こっているのか理解できるように、フードの中で何が起こっているのかを知るために、これはすべての魔法ではないと仮定しないでください。

describe method(argument) do 
    it { expect(subject).to be_boolean-matcher.with_chain(argument_two) } 
end 

や状況に (あなたはversionチェーンを使用していませんでしたが、私は、余分な情報のためにそれを追加しました)

  • 方法:パッケージ
  • 引数:mariadb-サーバー
  • 対象:パッケージに解決されます(mariadb-サーバー)
  • ブールマッチャーは:インストール
  • チェーン:バージョン
  • argument_two:1.2.3
関連する問題