我創建了一個構建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);
}
}
我在這裏的問題是,我不知道如何獨立地測試它。當然,我可以autowire真正的存儲庫(在內存中的數據庫),但我不想介入任何其他類,只測試邏輯,如何創建OR和AND子句。
不幸的是在春季API我無法找到,這將有助於
我不會這樣做,我的意思是寫一個通用規範,我認爲它正在重寫JPA背後的意圖。我只寫了特定的規範,大多數情況下都可以由Spring JPA來處理。當然,只是我個人的看法。 –
我有10個參數可以或不可以爲空/空。我不能寫10!單一規格 – ByeBye