用PowerMock mock final類


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM