객체 계층의 어딘가에 호출되는 Mockito를 사용하여 객체를 모의 할 수 있습니까?Mockito : 호출 계층 구조의 모의 객체 - 연결 호출
의는 다음과 같은 클래스를 가정 해 봅시다 : 나는 getDatabaseSalary()
의 반환 값을 대체 할 수 있도록
@Component
Class A
@Autowired B b
method obtainSalaryA()
calls b.calculateSalary()
@Component
Class B
@Autowired C c
method calculateSalary()
calls c.getDatabaseSalary()
@Component
Class C
getDatabaseSalary()
, 나는, 같은 시간에 단위 테스트 방법 class A
에서 obtainSalary
하지만, 모의 C 싶습니다 이 메소드가 계층에서 호출 될 때.
고마워요. 귀하의 제안은 주로 테스트를 마친 클래스 A에 초점을두고, 다른 모든 종속성은 조롱을받습니다. A 및 B의 기능을 테스트해야하는 통합 테스트 일 때 어떻게 테스트 할 것인가? 예를 들어 C 클래스의 메소드는 테스트에서 생산에서보다 다른 반환 값을 제공해야합니까? 여기에 Spring의 ActiveProfiles를 사용하여 테스트에서 클래스 C의 다른 구현을 주입하고 모의 객체를 사용하지 않는 유일한 옵션은 무엇입니까? – Chris
여전히 mock을 사용할 수 있습니다. 내 업데이트 답변을 참조하십시오. 지금 스프링 설정이 없으므로 작동하는지 알려주십시오. – Khalid
나는 그것이 작동한다고 생각하지 않는다. Autowired는 Mockito 주석이 아니며 'a'는 null입니다. 통합 테스트가 의도 된 경우 질문을 변경해야합니다. –