mock final类相对简单,直接贴代码

被测方法:

public class FinalEmployeeService {

    public void insertEmployee(Employee employee) {
        FinalEmployeeDao employeeDao = new FinalEmployeeDao();
        employeeDao.insertEmployee(employee);
    }
}

final 类

final public class FinalEmployeeDao {

    public boolean insertEmployee(Employee employee) {
        throw new UnsupportedOperationException();
    }
}

测试类:

@PrepareForTest(value={FinalEmployeeDao.class,FinalEmployeeService.class})
public class EmployeeServiceTestWithFinalClassTest extends PowerMockTestCase{
    @ObjectFactory
    public ITestObjectFactory getObjectFactory() {
        return new PowerMockObjectFactory();
    }
    
    @Test
    public void test() throws Exception {
        FinalEmployeeDao employeeDao = PowerMockito
                .mock(FinalEmployeeDao.class);
        Employee employee = new Employee();
        PowerMockito.whenNew(FinalEmployeeDao.class).withNoArguments().thenReturn(employeeDao);
        PowerMockito.when(employeeDao.insertEmployee(employee)).thenReturn(true);
        FinalEmployeeService employeeService = new FinalEmployeeService();
        employeeService.insertEmployee(employee);
        Mockito.verify(employeeDao).insertEmployee(employee);
    }
}

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2019-12-04
  • 2019-12-04
  • 2019-11-29
  • 2019-11-23
  • 2018-07-30
猜你喜欢
  • 2019-11-27
  • 2022-12-23
  • 2022-02-07
  • 2022-12-23
  • 2021-06-05
  • 2021-09-30
相关资源
相似解决方案