KotilnでTheoryとDataPointsを使ったJUnitのパラメータテストを書く
Kotlinに何も考えずにTheoryとDataPointsを使ったテストを書こうとするとデータがJUnitから参照できずエラーになる。 Kotlinにstaticはないのでcompanion objectを作って@JvmFieldをつけることでJUnitから参照できるようになる。
@RunWith(Theories::class) class SampleTest { companion object { @DataPoints @JvmField val data = listOf( 1 to 1, 2 to 4, 3 to 9 ) } @Theory fun testSquare(testData: Pair<Int, Int>) { val result = Calc().square(testData.first) assertEquals("expected:" + testData.second + " , result: " + result, testData.second, result) } }