私はSpecificationsオブジェクトを構築するビルダークラスを作成しました。 JpaSpecificationExecutor
のクエリを作成するために使用されます。スプリング仕様の単体テストを書くには?
public class SpecificationBuilder<T> {
private Specifications<T> specification;
public SpecificationBuilder() {
}
public SpecificationBuilder(final Specification<T> spec) {
specification = Specifications.where(spec);
}
public SpecificationBuilder<T> appendOr(final Specification<T> spec) {
specification = Specifications.where(spec).or(specification);
return this;
}
public SpecificationBuilder<T> appendAnd(final Specification<T> spec) {
specification = Specifications.where(spec).and(specification);
return this;
}
public Specification<T> build() {
return Specifications.where(specification);
}
}
ここに私の問題は、私は方法がわからないということです。ビルダーは、私は(フィルタリングのためのユーザから来ている)空/ nullにすることができ、私はそれなしでちょうどSpecifications
を使用することはできません多くのパラメータを持っているので、使用されていますそれを孤立してテストします。もちろん、私は実際のリポジトリ(インメモリDB上)をautowireすることができますが、他のクラスは含まず、ロジックのみをテストしたい、ORとAND節をどのように作成するのですか。私はあなたがDBに話し、実際のコードをテストする必要がある場合
これは私がジェネリック仕様書を書くことを意味するもので、JPAの背後にある意図を書き換えていると思います。私は特定の仕様のみを書いていますが、ほとんどのケースはSpring JPAで処理できます。もちろん私の個人的な意見。 –
私は10個のパラメータを持つことができますが、空でもなくてもかまいません。私は10を書くことができません!単一仕様 – ByeBye