| 审查对象 | 前置条件 / 后置条件 / 不变量 / 副作用 |
|---|---|
| 手段 | 基类测试套件参数化跑全部子类 |
| 结论 | 无法满足契约 → 改用组合 |
参数化契约测试
参数化契约测试
static Stream<Shape> shapes() {
return Stream.of(new Rect(2, 3), new Square(2));
}
@ParameterizedTest
@MethodSource("shapes")
void areaIsPositive(Shape s) {
assertTrue(s.area().isPositive());
}