單體測試:mock外部依賴對象,並注入到我們的業務類中

實體類:

public class ConvertController {
	@Resource
	private ConvertServiceImpl convertservice;
	public  APIResult convert() throws Exception {
		APIResult result = null;
		result = convertservice.getConvertResult();
		return result;
	}
}
public class ConvertServiceImpl implements ConvertService {
	public APIResult getConvertResult() {
		
	}
}

單體測試:

public class ConvertControllerTest {
    
    //mock的對象將要注入的類
	private ConvertController controller;
    //要mock的對象
	private ConvertServiceImpl convertservice;

    //在每個test執行前都會執行該方法
	@Before
	public void setUp() throws Exception {

		controller = new ConvertController();
		convertservice = Mockito.mock(ConvertServiceImpl.class); // 創建Mock對象
		Whitebox.setInternalState(controller, "convertservice", convertservice); // 注入依賴對象
	}
	@Test
	public void testconvert() throws Exception {
        //期待返回的結果
		APIResult api = new APIResult(0, "error");
        //調用convertservice的getConvertResult()方法時返回預期的結果api
		Mockito.when(convertservice.getConvertResult().thenReturn(api);
        //實際業務調用
		APIResult result = controller.convert();
        //調用結果和預期結果進行比較
		Assert.assertEquals("{\"code\":0,\"errMsg\":\"error\"}", result.toString());
	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章