gpt4 book ai didi

hibernate - 如何在 ConstraintValidator 实现中模拟 EntityManager

转载 作者:行者123 更新时间:2023-12-03 05:14:57 28 4
gpt4 key购买 nike

我已经在测试中模拟了 EntityManager。
但现在我也需要在我的真实类中模拟 EntityManager(自定义约束注释的 validator )。

在测试中我这样做

@RunWith(MockitoJUnitRunner.class)
public class SomeConstraintValidatorTest {

@Mock
private EntityManager entityManager;

在 validator 中我不能这样做,因为在 Intellij Idea 中无法解析 import org.junit.runner.RunWith。
对于构建,我正在使用 Gradle。'gradle deploy' 成功,但是当我开始测试时,我在 Idea 控制台中收到以下错误

Error:(6, 25) java: package org.junit.runners does not exist Error:(21, 2) java: cannot find symbol symbol: class RunWith



我需要模拟 EntityManager 的原因是在测试时出现以下错误

org.hibernate.AssertionFailure: null id in com.clients.entity.CClient entry (don't flush the Session after an exception occurs)

最佳答案

@RunWith注释仅用于测试类。如果您想在验证类中注入(inject) EntityManager,我建议您使用字段注入(inject)。

我假设您的 ConstraintValidator 有一个名为“entityManager”的字段。

@RunWith(MockitoJUnitRunner.class)
public class SomeConstraintValidatorTest {
@Mock
private EntityManager entityManager;
@InjectMocks
private ConstraintValidator myValidator;
}

更多信息可以找到 here

关于hibernate - 如何在 ConstraintValidator 实现中模拟 EntityManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33982732/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com