如何为单元测试一个服务模拟一个entityManager
问题描述:
我正在尝试为我的公司编写一些单元测试,所以它不可能在sourceCode中更改任何内容,但是在测试中所有内容都可以。 我使用Java8,Spring,Mockito和JUnit4。如何为单元测试一个服务模拟一个entityManager
问题:有一些服务用的EntityManager,它获取通过dependencyInjection
@PersistenceContext(unitName = someName)
private EntityManager em;
实例我试图嘲弄这和它注入到我的ClassUnderTest,就像我嘲笑所有其他类但doesn't工作。
@InjectMocks
@Autowired
private SomeService testedSomeService;
There's总是“IllegalStateException异常:无法加载应用上下文中,”运行第一次测试,并使用一个提示的实体管理器之前。 如果我对注释进行注释,每个方法都会得到很好的测试(除了方法,使用entityManager)。
有没有简单的方法来模拟entityManager?或者我如何在我的测试类中注入一个依赖项?
我很感谢任何帮助!
答
Trythis:
@RunWith(MockitoJUnitRunner.class)
公共类的测试{
@Mock
私人EntityManager的EM;
@Before 公共无效设置(){
MockitoAnnotations.initMocks(this);
Mockito.reset(em);
}
//你junits
}