2017-02-13 23 views
3

Mockitoを使用して、以下のコードのためにJunitテストを書いていますが、私はnullポインタの例外を取得しています。別のクラスの別のメソッドを呼び出すメソッドのjunitテスト

public boolean isApplyChecked() 
{ 
    return _rranalysis.getApplytoAllState(); 
} 

と私のテストケースは、あなたがあなたのrepeatRejectAnalysis_ListenerRepeatRejectAnalysisクラスの依存関係を注入する必要が

@Test 
public void testIsApplyChecked() { 
    JCheckBox Rra_Apply_Field = Mockito.mock(JCheckBox.class); 
    Mockito.when(Rra_Apply_Field.isSelected()).thenReturn(true); 
    RepeatRejectAnalysis rs = Mockito.mock(RepeatRejectAnalysis.class); 
    Mockito.when(rs.getApplytoAllState()).thenReturn(true); 
    boolean val = repeatRejectAnalysis_Listener.isApplyChecked(); 

    Assert.assertEquals(true, val);  
} 

答えて

1

です。たとえば:

使用セッター

RepeatRejectAnalysis rs =Mockito.mock(RepeatRejectAnalysis.class); 
Mockito.when(rs.getApplytoAllState()).thenReturn(true); 
repeatRejectAnalysis_Listener.setAnalysis(rs); 
boolean val=repeatRejectAnalysis_Listener.isApplyChecked(); 

使用@InjectMocks

public class ListenerTest{ 

    @InjectMocks 
    private Listener repeatRejectAnalysis_Listener = new Listener(); 

    @Mock 
    private RepeatRejectAnalysis rs; 

    @Before 
    public void init(){ 
     MockitoAnnotation.initMocks(this); 
    } 

    // reuse the exact same method as you have now. 
    @Test 
    public void testIsApplyChecked() { 
    JCheckBox Rra_Apply_Field=Mockito.mock(JCheckBox.class); 
    Mockito.when(Rra_Apply_Field.isSelected()).thenReturn(true); 
    RepeatRejectAnalysis rs =Mockito.mock(RepeatRejectAnalysis.class); 
    Mockito.when(rs.getApplytoAllState()).thenReturn(true); 
    boolean val=repeatRejectAnalysis_Listener.isApplyChecked(); 
    Assert.assertEquals(true, val); 
    } 

} 
0

他の答えはあなたが必要なことをからかっの1つ欠け作品に関する正しいです。しかし:なしあなたの現在のテストケースであなたが持っている嘲笑の必要があるようです。

テストのアイデアは、を有効にするために実際に必須の手順を含む(最小限の)セットアップを使用することです。

JCheckBoxを模擬しても意味がありません。テストしようとしているメソッドがそのチェックボックスを使用していない場合は、

関連する問題