2016-07-26 2 views
0

私はこのコードブロックを私のサービス層のメソッドで単体テストしようとしています。 誰でも私がここでテストできるものとテストする方法を提案することができます(特に、db部分への挿入)。任意のポインタ(/ example code/doc)は非常に役に立ちます。JavaユニットテストのDockを黙って

if (element != null) { 
    id = iplDAO.loadGames(element, batchVO.getId()); 
    iplPartyDetailsVO = element.getParty(); 
    if iplPartyDetailsVO != null) { 
    try { 
     iplDAO.insertPartyDetails(iplPartyDetailsVO, id, batchVO.getId()); 
    } catch (Exception e) { 

     logger.logp("className"); 
     String err = "blah"; 
     iplDAO.insertIntoError(err_t); 
    } 
} 
+0

あなたはDAOコードを所有していますか、それとも独自のものですか? – Compass

+1

'iplDAO'の作成/初期化の方法を共有できますか? – Mureinik

+0

@Compass はい、我々はDAOコードを所有している - その次のように作成した:IPLDAOはBaseDAOがTTDAO { \tを実装して拡張し の公開クラスアットAutowired \tプライベートITXXDAO txxDao。 \t At-Override \t public int loadGames(..){ \t return id; } \tでオーバーライド \tパブリックブールinsertPartyDetails(A、B、C){ \t \t戻りX。 \t} } ' サービスクラスでは、そのオートワイヤー – user2666282

答えて

0

私は、たとえば、あなたはあなたの期待が何であるかを決定する必要があり、このサービス層のコードのテストを記述しようとしている場合は、モックでテストを混乱されるかもしれないと思う:

  • データソースからいくつかのゲームをロードする
  • 実際には何を保存しているのか分かりませんが、いくつかの単体テストを書くことでこれがより明らかになるかもしれません。

これらあなたのコードに期待しているのであれば、あなたは彼らが満たされていることを確認することができますテストを記述する必要があります。

これは、各メソッド呼び出しは、あなたの機能をテストするために使用することができます何かを返すように、あなたは(iplDAOオブジェクトあなたのケースで)呼び出しているmocking the dependencyを意味 - あなたのケースでは、これらの二つの呼び出し:

iplDAO.loadGames(element,batchVO.getId()) 

をし、

iplDAO.insertPartyDetails(iplPartyDetailsVO, id,batchVO.getId()); 

の中から選択するJava mocking librariesがたくさんあり、それらはすべて十分に文書化されているが、this blog postは良い出発点です。

+0

ありがとうございます - だからダオの呼び出しにそれらをテストすることをお勧めしますか? 今私の質問は、iplDAO.insertPartyDetails(iplPartyDetailsVO、id、batchVO.getId())をテストする方法です。実際の挿入物なしで? – user2666282

+0

@ user2666282クラス内の模擬iplDAOオブジェクト(例えばMockitoライブラリを使用して)を使用することで、 '実際の' iplDAOオブジェクトが通常行うものを置き換えることになります(おそらくDBへの読み込みと挿入)。したがって、データベースとのやり取りはありません。 クラス全体を投稿すると、例が分かりやすくなります。 – tchambers

関連する問題