Я пытаюсь объединить концепцию параметризованного бегуна из JUnit4 с параметризованным тестом JUnit5.По сути, я хочу протестировать две отдельные функции на одном наборе данных.
Я знаю, что мог бы просто добавить функцию в качестве другого аргумента в сам параметризованный тест, но я пытаюсь упростить изменение или добавление новых функций для тестирования.
Смогу ли я использовать вложенныетестовые занятия, чтобы достичь этого?Я не уверен, что лучший способ подойти.
@RunWith(Parameterized::class)
class RomanNumeralTest(val func: (Int) -> String) {
@ParameterizedTest(name = "{index} - Expect [{0}] should return [{1}]")
@MethodSource("testData")
fun `Test roman numeral from integer values`(num: Int, expected: String) =
assertEquals(expected, func(num))
companion object {
@JvmStatic
@Parameterized.Parameters
fun data(): Collection<Array<(Int) -> String>> {
return listOf(
arrayOf({num -> roman(num)}),
arrayOf({num -> num.toRomanNumeral()})
)
}
@JvmStatic
private fun testData() = sequenceOf(
arrayOf(1, "I"),
arrayOf(2, "II"),
arrayOf(3, "III"),
arrayOf(4, "IV"),
arrayOf(5, "V")
).asStream()
}
}