2017-07-25 14 views
-1

このJUnitテストが失敗する理由を知ることができます。私が発見したことは代わりにgetDeligationsForLoggedInUserを返すことになっているように(ArrayListのを返すので、それは「ユーザーリスト」のためのLinkedListを返すことである。JUnit MockitoがArrayListの代わりにLinkedListを返す

@SuppressWarnings("unchecked") 
@Test 
public void test_getDelegationsForLoggedInUser() 
{ 
    String userId="Abcd"; 
    List<String> expectedUserList= new ArrayList<String>(); 
    expectedUserList.add("efghi"); 
    expectedUserList.add("jklmn"); 
    expectedUserList.add("opqrs"); 

    when(namedParameterJdbcTemplate.queryForObject(anyString(),anyMap(), any(RowMapper.class))).thenReturn(expectedUserList); 
    List<String> userList= workflowProcessDAOImpl.getDelegationsForLoggedInUser(userId); 
    verify(namedParameterJdbcTemplate, times(1)).query(sqlCaptor.capture(), namedParameterMap.capture(), rowMapperCaptor.capture()); 
    assertThat(userList, is(expectedUserList)); 
    assertThat(sqlCaptor.getValue(), is(SQLConstantsSysConfigV1.getInstance().GET_USERIDS_FOR_DELEGATES)); 

} 

誰もがこのような場合は理由を任意のアイデアを持っていますか?

+0

jUnitに失敗したログを提供できますか?私たちは、どのラインでどのような理由でテストに失敗したのかを知る必要があります。 –

答えて

0

あなたは、この試験方法queryForObjectが、方法queryでテストをモック。

を私はあなたのコードはsomwhere他の機能のモックを定義し、それがないと仮定?それは、単にコピーの結果である可能性があります/ペースト操作...

+0

ありがとう....私はこの考えをチェックします。 –

+0

:(私はそれをqueryForObject ....に変更しても、リンクされたリストを渡すことになりますback ここで何か問題が起きている可能性があります。 .queryForObject( <引数の取り込み>、 <引数の取り込み>、 <引数の取り込み> ); 私は上記のコードに取り込み引数があると考えました。 –

関連する問題