如何测试QueryDsl谓词

时间:2013-09-05 13:14:21

标签: unit-testing jpa querydsl

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

public static StringExpression emptyIfNull(StringExpression expression) {
    return expression.coalesce("").asString();
}

我真正想要确定的是

  1. 当原始表达式为""
  2. 时,表达式的计算结果为null
  3. 表达式计算结果为原始字符串
  4. 我该如何测试?我应该用我的整个上下文设置db测试,还是有一种更简单的方法来验证是否添加了正确的表达式,即使用实用方法给我一个COALESCE(<original>, '') SQL函数?

2 个答案:

答案 0 :(得分:3)

我会测试它们的运行情况,如果您测试序列化而不是您将查看预处理语句模板,并且当Querydsl序列化逻辑发生更改时您的测试可能会中断。

答案 1 :(得分:0)

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