我正在使用Spring Boot,正在尝试创建测试。

其实我的测试课:

@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);
        ...
    }

memberService类和getMemberById方法中,我对findOne类的memberRepository方法进行了调用。如果未找到成员,则抛出ResourceNotFoundException异常。

我不明白为什么会收到此错误。
我使用的注释不正确吗?

最佳答案

确切地说很难说,因为我不能只复制并粘贴所有代码进行调试,但是我相信您没有正确初始化模拟。尝试添加以下方法:

@Before
public void setup() {
  MockitoAnnotations.initMocks(this);
}

07-26 03:48