2
我對@RunWith(MockitoJUnitRunner.class)
和@InjectMock
註釋以及它們是如何相互關聯有點困惑。根據我對@RunWith(MockitoJUnitRunner.class)
的理解,我們不需要像mock(ABC.class)
那樣初始化模擬。Mockito的@InjectMock註釋
另一方面,@InjectMocks
自動注入吸氣劑和吸入器的模擬。該文件說:
@InjectMocks
目前它只支持setter注入。如果你喜歡構造函數注入 - 請貢獻一個補丁....
我不明白的是,當我刪除@InjectMocks
下面我得到空指針異常的測試,相關性是零。這是否意味着基於construtor的注射被支持?抑或是有事情做與@RunWith(MockitoJUnitRunner.class)
下面的代碼
@RunWith(MockitoJUnitRunner.class)
public class MyClassTest {
@Mock
private Dependency dependency;
@InjectMocks
private MyClass cls = new MyClass(dependency);
//...
}
class MyClass {
private Dependency dependency;
MyClass(Dependency dependency) {
this.dependency = dependency;
}
//...
}