0

내 회사의 단위 테스트를 작성하려고 했으므로 sourceCode의 모든 것을 변경할 수는 없지만 테스트의 모든 것을 변경할 수는 있습니다. Java8, Spring, Mockito 및 JUnit4를 사용 중입니다.단위 테스트를 위해 entityManager를 모형으로 만드는 방법

문제 : 일부 서비스는 내가 다른 모든 클래스를 조롱처럼,이 조롱하고 내 할려고 ClassUnderTest로 주입하려고 의존성 주입

@PersistenceContext(unitName = someName) 
private EntityManager em; 

를 통해 인스턴스를 가져옵니다 위해 entityManager하지만 나던 작업에있다 .

@InjectMocks 
@Autowired 
private SomeService testedSomeService; 

잠깐만 실례 항상 : 엔티티 관리자에 대한 힌트, 첫 번째 테스트를 실행하기 전에 "IllegalStateException이 애플리케이션 컨텍스트를로드하지 못했습니다." 주석에 주석을 작성하면 모든 메소드가 잘 테스트됩니다 (단, entityManager를 사용하는 메소드 제외).

엔티티 관리자를 조롱하는 간단한 방법이 있습니까? 또는 어떻게 내 testclass에 종속성을 삽입 할 수 있습니까?

아무쪼록 고맙습니다.

답변

0

Trythis :

@RunWith (MockitoJUnitRunner.class)

공용 클래스 테스트 {

@Mock

개인의 EntityManager EM;

@Before 공공 무효의 설정() {

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

// 당신의 junits

}

관련 문제