设置来自jruby的内部java方法调用的rspec期望值
我希望能够在jruby下使用rspec测试java代码,但不知道如何设置内部java方法调用的期望值。给定以下java:设置来自jruby的内部java方法调用的rspec期望值,java,mocking,rspec,jruby,jmock,Java,Mocking,Rspec,Jruby,Jmock,我希望能够在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.pa
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的“应该接收”),但它至少应该简洁。JtestR正是您想要的。它是与JRuby集成捆绑在一起的Ruby库的集合,因此运行测试完全不需要设置 它捆绑了摩卡和RSpec . 例如,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