例えば
method(Object obj1, Object obj2, Object obj3)
というような引数を指定することが難しい関数の単体テストはどう行えばいいのでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
メソッドの単体テストをしようとする場合、その単体テストへ与える入力は単純なプリミティブや文字列といったものであるとは限りません。そういうメソッドを単体テストする場合、テストドライバー内で引数を生成してやる必要があります。
class/interfaceを引数に取るのであれば当然ながらそれらの型に適合した具象クラスのインスタンスを渡す必要があります。またテストしたい内容に応じた振る舞いをしてくれるものでないと困りますね?
favoriteigoさんがおっしゃっているMockXXクラスはそういった目的で使えるものなのだと想像します(Mockという名前がついてるので)。
一般に繰り返し使うようなテスト入力用のクラスはあらかじめ用意しておいて「必要な振る舞いをさせることが簡単にできるような仕組み」を用意しておくのが普通だと思います。さもないとテストの度にHttpServletResponseとかを実装したクラスを一々定義するところからやらなくてはならず、そんなことをしていたのでは本体のテストをしているのかテスト用クラスのデバッグをしているのかわからないといった状況になっちゃいます。
投稿2016/11/09 12:58
総合スコア18394
0
ふつうにやればいいですよ
項目1 | 項目2 | 項目3 |
---|---|---|
正常 | 正常 | 正常 |
異常 | 正常 | 正常 |
正常 | 異常 | 正常 |
正常 | 正常 | 異常 |
異常 | 異常 | 正常 |
正常 | 異常 | 異常 |
異常 | 正常 | 異常 |
異常 | 異常 | 異常 |
みたいな感じで複数パターンやればいいのですよ
投稿2016/11/09 12:24
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
質問されている意図がよくわからないので、申しあげにくいですが、
method(Object obj1, Object obj2, Object obj3) の形は引数指定してますが、引数指定が難しいメソッドとは
どのようなメソッドのことを指しているのでしょうか?
実現したいことを明記されていないので、より正確な答えは出せないと思いますが・・・
投稿2016/11/09 12:06
総合スコア66
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/09 12:37
退会済みユーザー
2016/11/09 21:49
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。