1

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

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

我真正想确定的是

  1. 表达式的计算结果为""原始表达式的时间null
  2. 否则表达式计算为原始字符串

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

4

2 回答 2

3

我会在行动中测试它们,如果您测试序列化,您将查看准备好的语句模板,并且当 Querydsl 序列化逻辑发生更改时,您的测试可能会中断。

于 2013-09-05T16:37:47.557 回答
0

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

于 2020-07-29T00:36:28.393 回答