LoginSignup
1
1

More than 5 years have passed since last update.

[Spring Boot] パラメータライズドテストの書き方

Posted at

環境

ライブラリ名 バージョン
spring-boot 2.0.4.RELEASE
kotlin 1.2.60
junit 5

パラメータライズドテストとは?

一言でいうと、一つのテストメソッドにパラメータを与えて複数のテストをするもの
具体的にはコードで説明して行きます。

テストコード

  • 偶数かどうかを判定するメソッドが存在する
  • 偶数の場合はtrueを返し、奇数の場合はfalseを返す
/**
* テスト対象のメソッド
*/
fun isEven(num: Int): Boolean {
  return num % 2
}


fun patterns(): List<TestDataPattern> {
  return listOf(
    TestDataPattern("数字が奇数の場合", 1),
    TestDataPattern("数字が偶数の場合", 2)
  )
}

/**
* @param message テストの際に表示するメッセージ
* @param parameter テストする値
* @param expected テストが期待する結果
*/
data class TestDataPattern(val message: String, val parameter: Int, val expected: Boolean)

@ParameterizedTest
@MethodSource("patterns")
fun testIsEven(pattern: TestDataPattern) {
  assertEquals(pattern.expected, isEven(pattern.parameter), pattern.message)
}

パラメータライズドテストをするメソッドにはアノテーションで@ParameterizedTestをつける。
@MethodSource("patterns")によって、patternsというメソッドの返り値が引数patternに順番に入ることで実行される。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1