Eclipse Mars
JUnit
java
1car.set(MAX_E);
上記のようなメソッドで、引数にセットする値が間違えていないかチェックする方法をご教示いただけませんか?
補足
Aシステムの閉塞を確認したいので引数にAをいれるべきだが間違えてBを入れてしまっていた場合まずいですよね?引数の中身の確認をしたいのですがどのようにするのでしょうか?
テスト時のことです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

退会済みユーザー
2018/06/02 01:13

退会済みユーザー
2018/06/02 14:20

回答2件
0
テストっていうのは、下記のようなクラスの実装があって、(下記はあくまでもクラス名とメソッド名を質問者の書いたものに合わせただけのものです)
java
1public class Car { 2 public boolean set(String value){ 3 if(....) { 4 return true; 5 } 6 return false; 7 } 8}
引数にある値を入れたときに、その関数が正しく処理を行うかどうかを判定するものです。
したがってMAX_E
が正しいかどうかをテストするのではなく MAX_E
を入れたときにcar.set
の返り値が期待通り(trueなのかfalseなのか)になっているかどうかということをテストしなければいけません。
これをJUnitでは以下のように表現をします。
java
1assertTrue(car.set(MAX_E));
投稿2018/06/02 04:44
総合スコア2404
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

0
ベストアンサー
前回の回答の繰り返しになりますが、
仕様に対する実装コードがあって、その中の検証したいメソッドにある引数を与えた時、そのメソッドが仕様通りの値を返すかどうかをテストコードとして記述します。
したがって、正しい値を入れたときの検証と正しくない値を入れた時の検証を書けばよいのです。
実装側のコードが以下のようなものであるとします。
java
1// 仕様:引数valueがMAX_Eである場合はtrue,そうでない場合はfalseを返す 2public class Car { 3 public boolean set(Integer value){ 4 if(value.equals(MAX_E)) { 5 return true; 6 } else { 7 return false; 8 } 9 } 10}
上記実装の仕様からCar.set()のテストとしては
- car.setにMAX_Eが渡されたときTrueを返す
- car.setにMAX_E以外が渡されたときFalseを返す
ということを検証することになりますのでそれをJunitでコードにします。
したがってテストコードは以下のようになります。
java
1import static org.junit.Assert.*; 2 3import org.junit.Test; 4 5public class JunitCarTest { 6 @Test 7 public void 関数setに正しい引数が渡されたときTrueを返す() { 8 Car car = new Car(); 9 assertTrue(car.set(MAX_E)); 10 } 11 @Test 12 public void 関数setに正しい引数が渡されないときFalseを返す() { 13 Car car = new Car(); 14 int invalidValue = -1; // MAX_Eでない値であれば何でもよい。 15 assertFalse(car.set(invalidValue)); 16 } 17}
もし、car.setの実装が下記のように無条件でtrueを返す(仕様通りではない)実装であったとしたら、
先のテストコードの 「関数setに正しい引数が渡されないときFalseを返す」のassertFalse(invalidValue)
の部分が失敗するので実装が誤っていることが検証できます。
java
1 public boolean set(Integer value){ 2 return true; 3 } 4
投稿2018/06/03 03:17
総合スコア2404
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。