package com.example.demo.mock.controller;
import com.example.demo.junit.spring.service.junitdemoservice;
import com.example.demo.mock.service.mockdemoservice;
import com.example.demo.mock.service.mockdemoserviceimpl;
import org.junit.assert;
import org.junit.before;
import org.junit.test;
import org.junit.runner.runwith;
import org.mockito.*;
import org.springframework.boot.test.mock.mockito.mockbean;
/** * junit演示服務
* * @classname junitdemoservice
* @author zhaoguang
* @date 2019/12/14
* @version 1.0
*/public class mockdemoservicetest
@test
public void testadd()
}
注意,這種寫法是可以對介面進行mock的。
package com.example.demo.mock.controller;
import com.example.demo.junit.spring.service.junitdemoservice;
import com.example.demo.mock.service.mockdemoservice;
import com.example.demo.mock.service.mockdemoserviceimpl;
import org.junit.assert;
import org.junit.before;
import org.junit.test;
import org.junit.runner.runwith;
import org.mockito.*;
import org.mockito.junit.mockitojunitrunner;
import org.springframework.boot.test.mock.mockito.mockbean;
/** * junit演示服務
* * @classname junitdemoservice
* @author zhaoguang
* @date 2019/12/14
* @version 1.0
*/@runwith(mockitojunitrunner.class)
public class mockdemoservicetest
}
注意,@mock註解是mockito(不是junit)提供的,所以需要通過@runwith註解來指定執行環境是mockito。
或者,也可以這樣寫:
package com.example.demo.mock.controller;
import com.example.demo.junit.spring.service.junitdemoservice;
import com.example.demo.mock.service.mockdemoservice;
import com.example.demo.mock.service.mockdemoserviceimpl;
import org.junit.assert;
import org.junit.before;
import org.junit.test;
import org.junit.runner.runwith;
import org.mockito.*;
import org.springframework.boot.test.mock.mockito.mockbean;
import org.springframework.test.context.junit4.springrunner;
/** * junit演示服務
* * @classname junitdemoservice
* @author zhaoguang
* @date 2019/12/14
* @version 1.0
*/public class mockdemoservicetest
@test
public void testadd()
}
package com.example.demo.mock.controller;
import com.example.demo.junit.spring.service.junitdemoservice;
import com.example.demo.mock.service.mockdemoservice;
import com.example.demo.mock.service.mockdemoserviceimpl;
import org.junit.assert;
import org.junit.before;
import org.junit.test;
import org.junit.runner.runwith;
import org.mockito.*;
import org.mockito.junit.mockitojunitrunner;
import org.springframework.boot.test.mock.mockito.mockbean;
import org.springframework.test.context.junit4.springrunner;
/** * junit演示服務
* * @classname junitdemoservice
* @author zhaoguang
* @date 2019/12/14
* @version 1.0
*/@runwith(springrunner.class)
public class mockdemoservicetest
}
注意,@mockbean註解是springboot(不是mockito)提供的,所以需要通過@runwith註解指定執行環境為spring。
在實際的**中,往往不可能只測試沒有任何依賴的類,大多數場景中都至少是a依賴b的關係.我們要測試a時,就需要對b進行mock。像這樣寫就可以了:
@injectmocks
private b b;
@mock
private a a;
@runwith註解是junit提供的用於指定單元測試執行環境的。引數value的值必須是繼承了org.junit.runner.runner類的乙個實現類。runner的家族圖譜如下:
單元測試之模擬Mock
先看下面一段 public class dataservice idataservice public int getcount 其中有 getcount 方法是為獲取列表的 count,我們為這個方法寫單元測試 getcount 中獲取列表是呼叫了 idatarespository 中的 getl...
golang單元測試之mock
搞單元測試,如果碰到這些情況 1,乙個函式,內部包含了很多並且很深的呼叫,但是如果單單測這個函式,其實實現的功能很簡單。2,乙個函式,包含了其他還未實現的呼叫。3,函式內部對資料的要求極為苛刻。那麼這時候就可以考慮使用mock來處理。mock,簡而言之就是可以通過注入我們所期望返回的資料,或者我們所...
Object C單元測試 MOCK(摘錄精選)
斷言測試型別 下面一共18個斷言 sdk中也是18個,其含義 ios unittest 學習筆記,真心佩服原文的博主 xctfail format 生成乙個失敗的測試 xctassertnil a1,format.為空判斷,a1為空時通過,反之不通過 xctassertnotnil a1,forma...