2016-11-09 82 views
0

我有一個@Inject對象,我需要譏笑它投擲NPE同時使用@InjectMocks在我的測試類如何嘲笑在父類@injected對象

下面是我的類的結構

Class ChildClass extends ParentClass 
{ 

public myMethod(){ 

String myval=callParentClassMethod(); 

} 

Class ParentClass{ 

@Inject 
private MyService myservice; 
//there is no constructor or setter method for this injected object 

protected String callParentClassMethod(){ 
retrun myservice.getStringval(); 
} 

} 

你可以請建議如何模擬這個MyService對象。我已經使用@Mock和@Injected模擬,但它無法獲得NPE。我試圖注入基類和父類,但沒有運氣。我

回答

0

以下工作:

@RunWith(MockitoJUnitRunner.class) 
public class MyTest { 
    @InjectMocks 
    private ChildClass childClass = new ChildClass(); 

    @Mock 
    private MyService service; 

    @Test 
    public void test1() { 
     childClass.myMethod(); 
    } 
} 

UPDATE 我上傳示例項目與測試https://github.com/shurick-k/mock-test

你沒有指定所到底是什麼類型的@Inject註解使用,所以我認爲它來自javaee-api。其實沒關係。

+0

謝謝Shurick回覆。我在調用注入服務時仍然獲得NPE。是否有其他方式 –