我有單元測試的問題。以下是示例代碼片段。我嘲笑一個bean並注入@configuration類並使用mocked屬性來創建另一個bean。如何在SpringConfiguration中注入模擬bean來創建另一個bean。
在下面,如果我檢查,b.getSomething()返回默認值,如「」字符串,0爲int。等我沒有得到嘲弄的價值。任何想法如何做?
@Configuration
class A{
@Autowired B b;
@Bean
public SomeClass someBean(){
SomeClass clas = new SomeClass();
clas.setSomething(b.getSomething());
return clas;
}
}
@ContextConfiguration(classes = { A.class}, loader = SpringockitoAnnotatedContextLoader.class)
class ATest{
@ReplaceWithMock
@Autowired
B b;
@Before
public void setup(){
Mockito.when(b.getSomething()).thenReturn("ABC");
}
}
總是問自己這種情況:你真的需要Spring來做這樣的單元測試嗎?例如,在你的測試的例子中,你可以(也應該)明確地實例化你想測試的類並注入模擬,而不是依靠Spring來做它 –
如果你認爲你真的真的需要單元測試中的spring ,這個問題可能會給你一些想法(其中之一):http://stackoverflow.com/q/10906945/395202 –