2011-09-22 36 views
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; 
    } 
    //... 
} 

回答