2010-07-04 2 views
4

Мне бы очень хотелось, чтобы у меня был возможность проверить java-код с помощью rspec под jruby, но не вижу, как установить ожидания во внутренних вызовах java-метода. Учитывая следующие Java:Настройка ожиданий rspec по внутреннему java-вызову метода от jruby

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's 'should_receive'), но он должен быть, по крайней мере, кратким.

ответ

2

JtestR делает именно то, что вы хотите. Это коллекция библиотек Ruby, объединенная с интеграцией JRuby, так что запуск тестов абсолютно безболезнен для настройки.

Он связывает Mocha и RSpec http://jtestr.codehaus.org/Mocks. Например Rspec для Map, вы можете написать издевается так:

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

More info here

 Смежные вопросы

  • Нет связанных вопросов^_^