Unit testing 如何测试QueryDsl谓词

Unit testing 如何测试QueryDsl谓词,unit-testing,jpa,querydsl,Unit Testing,Jpa,Querydsl,我有一个用于查询的实用程序类。例如,我有以下方法: public static StringExpression emptyIfNull(StringExpression expression) { return expression.coalesce("").asString(); } 我真正想确定的是 当原始表达式为null 否则,表达式将计算为原始字符串 我应该如何测试这个?我应该用我的整个上下文设置一个db测试,还是有一种更简单的方法来验证添加了正确的表达式,即使用实用程序方法

我有一个用于查询的实用程序类。例如,我有以下方法:

public static StringExpression emptyIfNull(StringExpression expression) {
    return expression.coalesce("").asString();
}
我真正想确定的是

  • 当原始表达式为
    null
  • 否则,表达式将计算为原始字符串

  • 我应该如何测试这个?我应该用我的整个上下文设置一个db测试,还是有一种更简单的方法来验证添加了正确的表达式,即使用实用程序方法给我一个
    合并(,'')
    SQL函数?

    我会实际测试它们,如果改为测试序列化,您将查看准备好的语句模板,当Querydsl序列化逻辑更改时,测试可能会中断。

    您可以在测试中创建预期谓词,并检查预期谓词和实际谓词的哈希代码是否相同