2016-11-06 5 views
1

私はexecute()というメソッドを用意しています。これは何かを行い、ブール値を返します。通常の状況ではtrueを返しますが、例外がある場合(DataAccessExceptionなど)、例外をキャプチャしてfalseを返します。例外のシナリオをHamcrestでテストする方法

私は例外が発生し、 "false"が返されるシナリオをHamcrestを使ってテストする方法を理解しようとしています。

だから、ここにある:

public boolean execute() { 
    try {  ....... return true;} 
    catch (DataAccessException de) { ....... return false;} 
} 

答えて

1

あなたはDataAccessExceptionexecute内側()メソッドを抑制していると、あなたが示すように、むしろあなたがメソッド呼び出しの結果をassertすることができ、例外ことがテストされません次のようになります。

@Test 
public void testExecute() { 
    //Mock the code to throw DataAccessException 
    Mokito.doThrow(new DataAccessException()).when(mockObj).methodName(someMethod); 

    //now call execute method 
    boolean actual = obj.execute(); 
    assertThat(actual, false); 
} 
+0

catch句の中で、falseを返す前にLog.debugに例外を渡します。 – softwarelover

+0

Mockitoを使って新しいDataAccessExceptionをスローし、falseをアサートすることはできますか? – softwarelover

+0

はい、そうです、あなたはそれを行うことができます.. – developer

関連する問題