0

嘿,我写了一个 LudoGame,现在我想用一点 GuiceInjection 来测试它^^ 我有一个用于我的 die 的 Interface IDie。现在对于游戏,我只需要一个 IDie 而不是一个 realdie => 在测试中我只需给 LudoGame 一个 MokeDie 来设置我喜欢滚动的数字。IDie 只有一个方法:roll(),它返回一个 int。但是 mokeDie 现在有另一个公共方法:sendNextNumber() (应该清楚这是做什么的^^)现在我喜欢@Inject a Die 如果@UseMokeDie 在测试之前我想通过 MokeDie 但我对 Guice 非常陌生...请提供一些建议!谢谢解答

4

2 回答 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 回答