私はRubyテストに精通しておらず、私の検索で特定の質問に対する答えが得られていません。返品コードのユニットテストを行うにはどうすればいいですか
現在、特定の条件で終了するためにStandardErrorを発生させるアプリがあります。これの欠点は、終了コードが常に1であることです。
終了条件に一意のコードを提供するためにexit()を使用します。
次のように現在、プロジェクトの仕様ははStandardErrorメカニズムをテスト:
it "should raise an exception if no unignored project coverage file files were found" do
fixtures_project.ignore_list = ["*fixturesTests*", "*fixtures*"]
expect {fixtures_project.coverage_files}.to raise_error(StandardError)
end
私はassert($?.exit == 102)
ような何かをしたいが、私はまだ終了コードを取得するために手の前に発射するfixtures_project.coverage_filesが必要。
assert_equal(102, fixtures_project.coverage_files, "Hello there")
の変形を運のない状態で試しました。私はこれがおそらく単純なRubyだと確信していますが、私はgrokkedまだこのビットはありません。
raise_errorを確認せずにこれを行う方法を教えてください。 IE。fixtures_project.coverage_filesを呼び出して終了コードを生成するにはどうすればよいですか?私はコードで "raise"を削除したので、もうこれ以上テストすることはできません。 –
そこにraise_errorの期待もしたいのですが?それ以外の場合は、メソッドを呼び出して例外を救済する必要がありますが、これは仕様の良い習慣ではありません。 –
テスト中のコードで、終了する前にStandardErrorを発生させると(nnn)、アプリケーションはコードではなくコード1で終了します。次に、単体テストで2番目の期待値が失敗します。 StandardErrorを発生させる前に(nnn)終了すると、テストで最初の期待値が失敗します。 –