我希望能够在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'),但它至少应该简洁。
答案 0 :(得分:2)
JtestR完全符合您的要求。它是与JRuby集成捆绑在一起的Ruby库的集合,因此运行测试完全没有设置。
捆绑了Mocha和RSpec http://jtestr.codehaus.org/Mocks。 例如Rspec for Map,你可以编写这样的模拟:
it "should be able to add an entry to it" do
@hash_map.put "foo", "bar"
@hash_map.get("foo").should == "bar"
end