我正在学习测试驱动开发,我想知道在测试驾驶验证时我应该做些什么。我应该创建单元测试来测试每种可能的验证结果组合吗?在处理大型实体时,这似乎几乎是不可能的。假设我有一个具有大量属性的模型实体,其中一些具有约束,如下所示 -
@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函数运行它并获得失败验证的数量......但是如果我对测试严格,那么我必须对所有可能的无效属性组合进行此操作,这将需要创建大量实例进行测试。
所以在这种情况下看起来毫无意义,并不意味着单元测试对任何实体验证毫无意义?即如果它们对于具有大量属性的实体毫无意义,那么对于只有少数属性的属性它们也必须毫无意义?
答案 0 :(得分:1)
我会测试,而不是每种可能的组合,但每个属性约束。因此,创建一个有效的条目,检查没有失败。以违反特定约束的方式从该条目中改变一件事;确保该约束捕获它。重复每个约束。现在您知道约束都在起作用。