【发布时间】:2018-06-04 15:35:58
【问题描述】:
我正在使用 junit5,我想在嵌套类中创建参数化测试。例如:
class CardTest {
@Nested
class Cost {
Stream<Arguments> cards() {
return Stream.of(
Arguments.of(Card.common(0, Color.RED), 0),
/** Other Data **/
Arguments.of(Card.choseColor(), 50)
);
}
@MethodSource("cards")
@ParameterizedTest
void cardCost(Card card, int cost) {
assertThat(card.cost())
.isEqualTo(cost);
}
}
/** Some other nested classes or simple methods **/
}
问题是@MethodSource要求指定的方法必须是static。但是 Java 不允许在非静态内部类中使用静态方法。如果我创建类 Cost static 那么它不会被 junit 收集。
我应该怎么做才能解决这个问题?
【问题讨论】: