代码之家  ›  专栏  ›  技术社区  ›  RJo

如何测试QueryDsl谓词

  •  2
  • RJo  · 技术社区  · 12 年前

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

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

    我真正想确定的是

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

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

    2 回复  |  直到 12 年前
        1
  •  3
  •   Timo Westkämper    12 年前

    我会在实际操作中测试它们,如果您测试序列化,那么您将看到准备好的语句模板,并且当Querydsl序列化逻辑更改时,您的测试可能会中断。

        2
  •  0
  •   Alex A    5 年前

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