嘿,我写了一个LudoGame,现在我喜欢用一点GuiceInjection来测试它^^ 我有一个接口IDie为我的死。现在对于游戏我只需要一个IDie而不是一个realdie =>在测试中我只是给LudoGame一个MokeDie来设置我喜欢滚动的数字。 IDie只有一个方法:roll()返回一个int。 但是mokeDie现在有另一个公共方法:sendNextNumber()(应该清楚这是做什么的^^) 现在我喜欢@Inject a Die,如果@UseMokeDie在测试之前,我想通过MokeDie 但我对Guice很新... 需要一些建议! 答案的答案
答案 0 :(得分:3)
对于测试,最好的办法是手动构造实例。例如:
public void testAdvance() {
MockDie die = new MockDie();
LudoGame game = new LudoGame(die);
die.sendNextNumber(5);
game.advance();
}
答案 1 :(得分:0)
您可以尝试:
Injector injector = Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
bind(IDie.class).toInstance(new MockDie());
}
});
System.out.println(injector.getInstance(IDie.class).getClass().toString());