私はSpring Bootを使用していますが、テストを作成しようとしています。サービスレイヤメソッドテストが実行されているときに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
例外がスローされます。
なぜこのエラーが発生するのか分かりません。 正しい注釈を使用していませんか?
このような問題では難しいことが分かりますが、問題から最小、完全、および検証可能な例(http://stackoverflow.com/help/mcve)を作成する方法はありますか?それは本当に助けになるでしょう。 – entpnerd
まず、テストコードはSpringとはまったく関係ないので、すべてのクラスレベルの注釈を削除することができます。Mockitoを使用してすべてのコンポーネントをモックする場合は、Spring起動を起動する必要はありません。 –
あるいは、Spring Boot Test 1.4の '@ MockBean'を使うつもりです。これはまったく別のものです。 –