1

我正在学习测试驱动开发,我想知道在测试驱动验证方面我应该做什么。我应该创建单元测试来测试验证结果的每一种可能组合吗?在处理大型实体时,这似乎几乎是不可能的。假设我有一个具有很多属性的模型实体,其中一些带有约束,如下所示 -

@entity
public class MyClass extends Model {

    @Constraints.Required
    @Constraints.MaxLength(20)
    public String attribute1;

    @Constraints.Required
    public String attribute2;

    public float attribute3;

    @Constraints.Required
    public String attribute4;

    @Constraints.Required
    public String attribute5;

    @Constraints.Max(100)
    public int attribute6;

    @Constraints.Required
    public String attribute7;

    ...
    ...
    ...
}

所以我正在编写单元测试来验证这样一个实体,还是那毫无意义?我可以通过 Validator 函数运行它并获取失败验证的数量......但如果我对测试非常严格,我是否必须对所有可能的无效属性组合进行此操作,这将需要创建大量要测试的实例。

所以在这种情况下它肯定看起来毫无意义,这是否意味着单元测试对于任何实体验证都毫无意义?即,如果它们对于具有很多属性的实体毫无意义,那么它们对于只有少数属性的属性也一定是毫无意义的?

4

1 回答 1

3

我会测试,不是每个可能的组合,而是每个属性约束。所以创建一个有效的条目,检查没有失败。以违反特定约束的方式更改该条目中的一件事;确保该约束捕获它。对每个约束重复。现在您知道约束都在起作用。

于 2013-04-23T21:49:13.280 回答