我正在使用PowerMock,我已经看到使用@InjectMock
我可以在我的测试中获得注入的类。
但我需要的是使用注入了一个类的Akka actor,对该actor进行测试并在那里注入一个模拟类。
class A extends Actor{
@Inject private B b;//How can I mock this class?
}
@Test
public test(){
final Props props = Props.create(A.class, new A());
testActorRef = TestActorRef.create(actorSystem, props);
Future<Object> ask = Patterns.ask(testActorRef);
}
只是为了澄清源代码无法修改。
答案 0 :(得分:0)
最简单的方法是更改为构造函数注入:
class A extends Actor{
private final B b;//How can I mock this class?
A(@Inject B b){
this.b=b;
}
}
导致这个测试:
@Rule public MockitoRule mockitoRule = MockitoJUnit.rule();
@Mock private B mockedB;
@Test
public test(){
// configure mockedB here
A a = new A(mockedB);
// do something with a
// verify method invocations on b
}