嘿,我写了一个 LudoGame,现在我想用一点 GuiceInjection 来测试它^^ 我有一个用于我的 die 的 Interface IDie。现在对于游戏,我只需要一个 IDie 而不是一个 realdie => 在测试中我只需给 LudoGame 一个 MokeDie 来设置我喜欢滚动的数字。IDie 只有一个方法:roll(),它返回一个 int。但是 mokeDie 现在有另一个公共方法:sendNextNumber() (应该清楚这是做什么的^^)现在我喜欢@Inject a Die 如果@UseMokeDie 在测试之前我想通过 MokeDie 但我对 Guice 非常陌生...请提供一些建议!谢谢解答
问问题
273 次
2 回答
3
对于测试,最好的办法是手动构建实例。例如:
public void testAdvance() {
MockDie die = new MockDie();
LudoGame game = new LudoGame(die);
die.sendNextNumber(5);
game.advance();
}
于 2010-05-07T15:43:41.993 回答
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());
于 2010-05-08T17:14:21.627 回答