0

NamedParameterJdbcDaoSupport を拡張する DAO 実装クラスをモックしようとしています

これは私のDAOインターフェースがどのように見えるかです:

public interface TestDAO{

List<String> search();

}

これが私の実装クラスです。

    public class TestDAOImpl extends NamedParameterJdbcDaoSupport implements TestDAO {

    public List<String> search(){

    return getNamedParameterJdbcTemplate().query(mySQLQuery,myMapSqlParameterSource, myRowMapper);
    }
}

私が達成しようとしているのは、呼び出しの動作をモックするためのモック テスト ケースを作成することです。

getNamedParameterJdbcTemplate().query(mySQLQuery,myMapSqlParameterSource, myRowMapper)

だから私は次のようなものを実装したい

when(getNamedParameterJdbcTemplate().query(mySQLQuery,myMapSqlParameterSource, myRowMapper)).thenReturn(whatIWantToReturn);

これに関する情報が見つかりません。誰かが私を導くことができますか?これを行う方法?

public class TestDAOImplTestCase{

    @Test
    public void testSearch(){
        when(getNamedParameterJdbcTemplate().query(mySQLQuery,myMapSqlParameterSource, myRowMapper)).thenReturn(whatIWantToReturn); 
    } 
}
4

1 に答える 1

0

私を信じてください、あなたはそれをしたくありません。本当にやりたいことは、次の 2 つのテストを実行することです。

  1. 簡単なもの:コードの残りの部分が正しいパラメーターを渡して結果を適切に処理するかどうか、TestDaoインターフェイス全体と単体テストをモックします。search

  2. 少し難しいもの:統合テスト. の実際の実装を取得TestDAOImplし、実際のデータベースに接続し、データベースにデータを事前に入力し、searchメソッドを実行して、正しい答えが返されるかどうかを確認します

于 2015-06-30T22:06:43.043 に答える