【问题标题】:How do I unit test the querydsl query inside the given method?如何在给定方法中对 querydsl 查询进行单元测试?
【发布时间】:2013-02-12 16:33:16
【问题描述】:
public UserEntity findUserByUsername( String username ) {

    QUserEntity tableUser = QUserEntity.userEntity;

    JPAQuery query = new JPAQuery( entityManager )
        .from( tableUser )
        .where( tableUser.ds_username.eq( username ) );

    return ( UserEntity ) query.singleResult( tableUser );
}

使用最新版本的 junit。

【问题讨论】:

  • 是否要在没有数据库连接的情况下测试该方法?
  • 是的,这里的意图是单元测试而不是集成测试

标签: java jpa junit junit4 querydsl


【解决方案1】:

您可以模拟 EntityManager 并验证 Querydsl 是否以您预期的方式使用 EntityManager

【讨论】:

  • 我想那将是唯一的方法。如果我依赖 querydsl 操作 entityManager 的方式,我不会对任何即将到来的 querydsl 更新感到惊讶,是吗?我不确定这是否是最安全的方法,如果不是,我最终会将其委托给集成测试。
  • 如果你想测试 Querydsl 的内部逻辑,那么使用模拟的 EntityManager 进行单元测试就可以了。如果您只是想确保您的 findUserByUsername 方法有效,那么集成测试将是一个更好的选择。
猜你喜欢
  • 2013-11-26
  • 2011-05-15
  • 2019-01-15
  • 2014-01-09
  • 1970-01-01
  • 2021-07-29
  • 1970-01-01
  • 1970-01-01
  • 2022-11-17
相关资源
最近更新 更多