首页 > 解决方案 > 在 JUnit 的另一个方法中没有调用方法

问题描述

我有一个方法可以在里面调用另一个 mehide。这是我的方法:

    public void unblocUser(BloclistDTO bloclistDTO) {
    blocListRepository.delete(mapper.toModel(bloclistDTO));
      if (blocListRepository.getBlocList(bloclistDTO.getCandidate().getId(), bloclistDTO.getColumnName()).isEmpty()) {
        this.setVisibility(bloclistDTO.getCandidate().getId(), bloclistDTO.getColumnName(), true);
    }  
}

我已经测试了 setVisibility 方法本身,它有效。但是,当 clling unblocUser 时它不起作用;这是测试它的方法:

@Test
public void unblocUserLastOne() {
        Company  blockedCompany = new Company (); 
        Candidate  candidate = new Candidate (); 
        candidate.setId(1L); 
        candidate.setPersonalDetailsVisible(false);;
        blockedCompany.setId(2L);
        candidate.setPersonalDetailsVisible(false);
        BloclistDTO bloclist= new BloclistDTO(); 
        bloclist.setBlockedCandidate(null);
        bloclist.setCandidate(candidate);
        bloclist.setBlockedCompany(blockedCompany);
        bloclist.setColumnName("personal_details_visible");   
        bloclist.setId(3L);
        blocListService.unblocUser(bloclist); 
         assertEquals(true, candidate.isPersonalDetailsVisible());   
} 

我收到一个错误:预期为真,但为假。请问有什么帮助吗?

标签: spring-bootunit-testingjunit

解决方案


首先你需要为 BlocListRepository 类创建一个模拟对象

@InjectMocks
BlocListRepository blocListRepository;

然后在 BlocListRepository 类中模拟 delete 方法。

@Test
public void unblocUserLastOne() {

    Mockito.doNothing().when(blocListRepository).delete(Mockito.any());

    Company  blockedCompany = new Company (); 
    Candidate  candidate = new Candidate (); 
    candidate.setId(1L); 
    candidate.setPersonalDetailsVisible(false);;
    blockedCompany.setId(2L);
    candidate.setPersonalDetailsVisible(false);

    BloclistDTO bloclist= new BloclistDTO(); 
    bloclist.setBlockedCandidate(null);
    bloclist.setCandidate(candidate);
    bloclist.setBlockedCompany(blockedCompany);
    bloclist.setColumnName("personal_details_visible");   
    bloclist.setId(3L);
    blocListService.unblocUser(bloclist); 
    assertEquals(true, candidate.isPersonalDetailsVisible());   
} 

推荐阅读