如何模拟EntityManager?

Muh*_*edy 29 java unit-testing jpa mocking entitymanager

我需要模拟实体管理器来使测试服务层(在我的情况下是一个会话外观)独立于底层(在我的例子中是实体管理器).

那么我怎么能做到这一点?我应该使用dbunit吗?我需要easy/j(模拟)吗?

Koi*_*oer 13

我建议使用Mockito Framework,它非常易于使用和理解.

@Mock
private EntityManager entityManager; 
Run Code Online (Sandbox Code Playgroud)

如果要使用属于entityManager的任何方法,则应调用.

Mockito.when(METHOD_EXPECTED_TO_BE_CALLED).thenReturn(AnyObjectoftheReturnType);
Run Code Online (Sandbox Code Playgroud)

当您运行测试时,在Mockito.when中为EntityManager公开声明的任何调用都将返回声明中的值.

阅读完整文档.

https://static.javadoc.io/org.mockito/mockito-core/2.12.0/org/mockito/Mockito.html#stubbing