4

jruby で rspec を使用して Java コードをテストできるようになりたいと思っていますが、内部の Java メソッド呼び出しに期待値を設定する方法がわかりません。次の Java が与えられた場合:

public class A {
  public String hi() {
    return hello();
  }

  public String hello() {
    return "yo";
  }
}

私はできるようになりたいです:

describe 'A' do
  it 'should call hello' do 
    a = some.java.package.A.new
    a.should_receive(:hello).and_return('yello')
    a.hi
  end
end

これを行うために舞台裏でJavaモッキングツールを統合することは可能ですか? 誰かがすでにそうしていますか?(rspec の「should_receive」の代わりに)期待値を設定するために別の構文を使用する必要があるかどうかは気にしませんが、少なくとも簡潔にする必要があります。

4

1 に答える 1

2

JtestR はまさにあなたが望むことを行います。これは、JRuby 統合にバンドルされた Ruby ライブラリのコレクションであるため、テストの実行はセットアップがまったく簡単です。

Mocha と RSpec http://jtestr.codehaus.org/Mocksがバンドルされています。たとえば、Map の Rspec では、次のようなモックを作成できます。

it "should be able to add an entry to it" do
    @hash_map.put "foo", "bar"
    @hash_map.get("foo").should == "bar"
  end

詳細はこちら

于 2011-02-15T00:55:57.373 に答える