我创建了一个构建器类,用于构建 Specifications 对象。它用于为 JpaSpecificationExecutor
创建查询。使用该构建器是因为我有许多参数可以为空(来自用户进行过滤),不能仅使用 Specifications
:
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);
}
}
我的问题在于我不知道如何将其隔离进行测试。当然,我可以自动装配实际存储库(使用内存数据库),但我不想涉及任何其他类,只想测试逻辑,即如何创建OR和AND子句。
不幸的是,在Spring API中我找不到任何有用的方法。