[英]How to Mock EntityManagerFactory In JUNIT
JUNIT 测试如何模拟实体管理器工厂。 我正在为 Entity Manager Factory 编写 junit 测试用例,但是当 (when().then()) 得到 null 时就在这边。
在测试 class 的顶部添加@ExtendWith(MockitoExtension.class)
。
这段代码对我有用。 您应该删除 @ExtendWith (SpringExtension.class)。 还要删除 Mockito.mock,因为我们在这些字段之上添加了 @Mock。
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import static org.mockito.Mockito.when;
@ExtendWith(MockitoExtension.class)
class TestClass {
@Mock
private EntityManager entityManager;
@Mock
private EntityManagerFactory entityManagerFactory;
@Mock
private CriteriaBuilder criteriaBuilder;
@Mock
private CriteriaQuery<User> criteriaQuery;
@Test
void getSearchData() {
when(entityManagerFactory.createEntityManager()).thenReturn(entityManager);
when(entityManager.getCriteriaBuilder()).thenReturn(criteriaBuilder);
when(criteriaBuilder.createQuery(User.class)).thenReturn(criteriaQuery);
when(criteriaQuery.from(User.class)).thenReturn(new Root<>());//you can also mock Root object
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.