试验中的Guice问题

时间:2010-05-07 09:19:09

标签: guice

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

2 个答案:

答案 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());