스프링 부트를 사용하고 있는데 테스트를 만들려고합니다.서비스 계층 메서드 테스트가 실행 중일 때 ResourceNotFoundException이 발생합니다.
사실 내 테스트 클래스 : 내 memberService
클래스와 getMemberById
방법에서
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment=WebEnvironment.RANDOM_PORT)
public class MemberServiceImplTest {
@InjectMocks
MemberServiceImpl memberService;
@Mock
MemberRepository memberRepository;
@Mock
Member member;
@Before
public void initMocks() {
MockitoAnnotations.initMocks(this);
}
@Test
public void getMemberId() {
Long memberId = 1l;
Member member = new Member();
...
Mockito.when(memberRepository.findOne(memberId)).thenReturn(member);
MemberDto memberDto = memberService.getMemberById(memberId);
...
}
, 내가 memberRepository
클래스의 findOne
방법에 대한 호출을한다. 멤버가 발견되지 않으면 ResourceNotFoundException
예외가 발생합니다.
왜이 오류가 발생하는지 이해가되지 않습니다. 올바른 특수 효과를 사용하고 있지 않습니까?
나는 이런 문제에 대해 힘들다는 것을 알고 있지만, 문제로부터 Minimal, Complete, Verifiable Example (http://stackoverflow.com/help/mcve)을 만들 수 있다고 생각합니다. 그것은 정말로 도움이 될 것입니다. – entpnerd
처음에는 테스트 코드가 Spring과 전혀 관련이 없으므로 모든 클래스 수준의 주석을 삭제할 수 있습니다. Mockito를 사용하여 모든 구성 요소를 모의하는 경우 스프링 부트를 시작할 필요가 없습니다. –
아니면 Spring Boot Test 1.4에서'@ MockBean'을 사용하려고했습니다 ... 이것은 완전히 다른 것입니다. –