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

考えられるすべての組み合わせではなく、属性の制約ごとにテストします。したがって、有効なエントリを作成し、エラーがないことを確認してください。特定の制約に違反するような方法で、そのエントリから 1 つのことを変更します。その制約がそれをキャッチすることを確認してください。制約ごとに繰り返します。これで、制約がすべて機能していることがわかります。

于 2013-04-23T21:49:13.280 に答える