■情報
・Eclipse: Version 2022-12 (4.26.0)
・Java : Version 17
・JUnit4
■FizzBuzzクラスのソース
FizzBuzz.java
public class FizzBuzz {
private int inputNum;
public FizzBuzz(int num) {
this.inputNum = num;
}
public String FizzBuzzGame() {
if (inputNum % 15 == 0) {
return "FizzBuzz";
} else if (inputNum % 5 == 0) {
return "Buzz";
} else if (inputNum % 3 == 0) {
return "Fizz";
} else {
return Integer.toString(inputNum);
}
}
}
■テストクラスのソース
FizzBuzzTest.java
import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;
import org.junit.Test;
public class FizzBuzzTest {
@Test
// 3の倍数の期待値「Fizz」が返ってくるかテスト
public void case1() {
FizzBuzz fizzBuzz = new FizzBuzz(3);
assertThat(fizzBuzz.FizzBuzzGame(), is("Fizz"));
}
@Test
// 5の倍数の期待値「Buzz」が返ってくるかテスト
public void case2() {
FizzBuzz fizzBuzz = new FizzBuzz(5);
assertThat(fizzBuzz.FizzBuzzGame(), is("Buzz"));
}
@Test
// 3と5の倍数の期待値「FizzBuzz」が返ってくるかテスト
public void case3() {
FizzBuzz fizzBuzz = new FizzBuzz(15);
assertThat(fizzBuzz.FizzBuzzGame(), is("FizzBuzz"));
}
@Test
// 上記以外の期待値「数値」が返ってくるかテスト
public void case4() {
FizzBuzz fizzBuzz = new FizzBuzz(16);
assertThat(fizzBuzz.FizzBuzzGame(), is("16"));
}
}
■動作検証
4:コンソールにテスト結果が表示される
※今回4ケーステストコードを作成したので、実行が「4/4」と表示されています。
また全て期待値通りの結果が返ってきているためエラーが「0」となっています。
右側の緑色のバーは「正常」を意味し、赤色の場合「異常」を意味します。
■最後に
今回はJUnitを使ってFizzBuzzゲームのソースをテストしてみました。
今回テスト結果の判定に使ったメソッド等は、@opengl-8080さんの「HamcrestのMatchersに定義されているメソッドの使い方メモ」という記事を参考に使ってみました。