前提・実現したいこと
単純な4測計算(+.-.*./)をしてアドレスを入力すれば答えを表示するWEBアプリ(Calc4とします)を作りました。
Calc4にJunitで単体テストを実行してエラーメッセージを表示したいのですがはじめのassertEqualsメソッドの引き算に失敗しましたというエラーメッセージしか表示できません。
足し算、引き算、掛け算、割り算、この四つのエラーメッセージをJunitテストで表示させたいです。
よろしくお願いします!
###https://blog.toyo999.com/entry/java-junit-auto-test#Caliculatorjava
↑のURLを参考にアレンジして作っています
発生している問題・エラーメッセージ
Exception in thread "main" org.opentest4j.AssertionFailedError: 引き算に失敗しました ==> expected: <5> but was: <95> at org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:55) at org.junit.jupiter.api.AssertionUtils.failNotEqual(AssertionUtils.java:62) at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:150) at org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:542) at calc4junitTest.Calc4.testCalc4(Calc4.java:60) at calc4junitTest.Calc4Test.main(Calc4Test.java:25)
Calc4.java↓
Calc4java
1package calc4junitTest; 2 3import static org.junit.jupiter.api.Assertions.assertEquals; 4 5class Calc4 { 6 /** 7 * 足し算の結果を返す 8 * @param x 9 * @param y 10 */ 11 public int tasizan(int x,int y){ return x + y; } 12 13 /** 14 * 引き算の結果を返す 15 * @param x 16 * @param y 17 */ 18 public int hikizan(int x,int y){ return x - y; } 19 20 /** 21 * 掛け算の結果を返す 22 * @param x 23 * @param y 24 */ 25 public int kakezan(int x,int y){ return x * y; } 26 27 /** 28 * 掛け算の結果を返す 29 * @param x 30 * @param y 31 */ 32 public int warizan(int x,int y){ return x / y; } 33 34 35 36 public static void main(String[] args){ 37 int x = 10; 38 int y = 5; 39 40 // 自分自身をインスタンス化 41 Calc4 cal = new Calc4(); 42 43 // 足し算の結果を出力 → 15 44 System.out.println("x + y = : " + cal.tasizan(x, y)); 45 46 // 引き算の結果を出力 → 5 47 System.out.println("x - y = : " + cal.hikizan(x, y)); 48 49 // 足し算の結果を出力 → 50 50 System.out.println("x * y = : " + cal.kakezan(x, y)); 51 52 // 引き算の結果を出力 → 2 53 System.out.println("x / y = : " + cal.warizan(x, y)); 54 55 } 56 // Calc4Testで怒られたクラス、assertEqualsクラス 57 public void testCalc4() { 58 Calc4 calc = new Calc4(); 59 // 引き算の結果を確認、左が期待値、右が実際の結果 60 assertEquals(5, calc.hikizan(100,5),"引き算に失敗しました"); 61 62 // 足し算の結果を確認、左が期待値、右が実際の結果 63 assertEquals(15, calc.tasizan(100,5),"足し算に失敗しました"); 64 65 // 掛け算の結果を確認、左が期待値、右が実際の結果 66 assertEquals(50, calc.kakezan(100,5),"掛け算に失敗しました"); 67 68 // 割り算の結果を確認、左が期待値、右が実際の結果 69 assertEquals(2, calc.warizan(100,5),"割り算に失敗しました"); 70 } 71 72}
Calc4Test.java↓
Calc4Testjava
1package calc4junitTest; 2 3import static org.junit.jupiter.api.Assertions.assertEquals; 4 5class Calc4Test { 6 7 // Caliculator をインスタンス化 8 Calc4 calc = new Calc4(); 9 10 /** 11 * 実際にテストを行うメソッド 12 */ 13 public void testCalc4(){ 14 // 引き算の結果を確認、左が期待値、右が実際の結果 15 assertEquals(5, calc.hikizan(100,5),"引き算に失敗しました"); 16 17 // 足し算の結果を確認、左が期待値、右が実際の結果 18 assertEquals(15, calc.tasizan(100,5),"足し算に失敗しました"); 19 20 // 掛け算の結果を確認、左が期待値、右が実際の結果 21 assertEquals(50, calc.kakezan(100,5),"掛け算に失敗しました"); 22 23 // 割り算の結果を確認、左が期待値、右が実際の結果 24 assertEquals(2, calc.warizan(100,5),"割り算に失敗しました"); 25 } 26 27 public static void main(String[] args){ 28 // 自分自身をインスタンス化 29 Calc4 ct = new Calc4(); 30 // 怒っているメソッド 31 ct.testCalc4(); 32 } 33}
試したこと
すぐ上にtestCalc4メソッドがあるのに
ct.testCalc4がCalc4クラスにないと怒られたのでテストメソッドをそのままCalc4クラスにコピペしました。
エラーメッセージは順番が一番上の物が表示されることを確認。
一番上のエラーメッセージであれば変更可能➡例:引き算に失敗した➡引き算に失敗した失敗した失敗した失敗した失敗した
という風に変更可能です
Calc4Test内のassertEqualsメソッドやインスタンス化コードはコメントアウトしても挙動が同じでした
補足情報(FW/ツールのバージョンなど)
Windows10
STS4
JUNIT5
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。