- ベストアンサー
JAVA 引数の引数の取得について
JAVA初心者です。的を得ていない書き込みをするかもしれませんが ご勘弁ください。今JUNITであるクラスのあるメソッド(MethodA)をチェックする テストプログラムを作成しております。 MethodA: public File MethodA(String name, File A) { int i = name.substring(0, i); String ret = name.substring(0, i + 1); return new File(A, ret); この場合に戻り値として返される引数の部分 「return new File(A, ret);」 の「A」と「ret」の値をJUNITで確認したいのですが、アイデアを 頂けますと大変幸いです。 また、戻り値の「return new File(A, ret);」に 「new」とついているのはなぜでしょうか?? 基本的な質問で大変申し訳ございませんが、よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
僕がテストするなら ・publicメソッドに対してはassertXXX ・protectedメソッドに対してはオーバーライドしてassertXXX ・privateメソッドに対しては呼び出し元でassertXXX です。 必要に応じてMockなりStubなり用意すると思います。 MethodAの場合、考えられる条件で複数の入力値を用意しておいて、 testMethodA1 testMethodA2 ・・・ testMethodAx それぞれの中でassertするのがいいと思います。
その他の回答 (1)
- koko_u_
- ベストアンサー率18% (459/2509)
>の「A」と「ret」の値をJUNITで確認したいのですが JUnit はユニットテストのツールなので、そのようなデバッガのような使用方法は想定されていないと思います。 基本的に MethodA() で戻ってくることが「期待される値」と実際の戻り値を比較することになりましょう。 >「new」とついているのはなぜでしょうか?? File オブジェクトを新たに作って戻すためとしか言えません。
お礼
ご回答ありがとうございます。 この場合MethodAを実行して戻ってくるのはFileオブジェクトの 「File(A, ret)」になるわけなので、期待される値をローカル変数として以下のように作成しておいて、 「File(B, exepect)」 JUNITの「assert.Equals」メソッドで比較すればいいということに なるでしょうか? 初歩的な質問で大変申し訳ないです。
お礼
ありがとうございます。 確かにコーディングの途中でこまめにAssertionをして 値を確認していくと、バグの予防になりそうですね。 ちなみにMethodAの場合は、引数として返却されるであろう値 を想定して、幾つかのテストメソッドで正常性のテスト、 また、想定されない値との比較による不一致の確認をする という理解でよろしいでしょうか。