0

我正在尝试为我的公司编写一些单元测试,所以它不可能在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?或者我如何在我的测试类中注入一个依赖项?

我很感谢任何帮助!

回答

0

Trythis:

@RunWith(MockitoJUnitRunner.class)

公共类的测试{

@Mock

私人EntityManager的EM;

@Before 公共无效设置(){

MockitoAnnotations.initMocks(this); 
    Mockito.reset(em); 
} 

//你junits

}

相关问题