2
私はプロトタイプBeanを作成するシングルトンSpring Beanを持っています。Mockito:javax.inject.Providerで作成したプロトタイプbeanをモックする方法は?
@Component
public class MySingleton {
@Autowired
private javax.inject.Provider<MyPrototype> prototypeFactory;
public void doStuff() {
MyPrototype bean = prototypeFactory.get();
bean.invoke();
}
}
@Component
@Scope("prototype")
public class MyPrototype {
public void invoke() {}
}
は、今私はシングルトンのためのJUnitテストを作成したいと思います:それらはjavax.inject.Provider
フィールドから取得され
@Mock
MyPrototype prototype;
@InjectMocks
MySingleton sut;
@Test
public void testPrototype() {
sut.doStuff();
verify(prototype, times(1)).invoke();
}
しかし、それは当然のことながら、適切に設定しないシングルトンのProvider
。
これを行う方法はありますか? Prototypeインスタンスを作成するSingleton Factory Beanを作成しないでください。
または、シングルトンの場合は@Lookup
-factoryメソッドを使用して優雅に可能でしょうか?私はそれをまだ見ていない。
そう簡単に...ありがとうを。 – daniu