mock配置編譯環境
① 誰能教教我windows上怎麼裝mockjs,"npm install mockjs"這句話在哪個目錄下運行啊
1.可以通過一勞永逸的方式修改代理地址 2.更換npm源拼rp 環境確認 1.確定一下你的npm config情況 npm config ls 2.詳解 1.npm默認源地址 2.用戶配置文件所在地址 3.代理伺服器 4.用戶配置的源地址 修改方案 1.土鱉式 修改npm用戶配置文件.npmrc...
② 如何用mockito+spring進行單元測試
如何用mockito+spring進行單元測試(1)
本文只說如何使用。
假設你和我一樣,也要構造一個系統,系統中有若干service,假設是A,B,C吧。
其中A 依賴 B 依賴 C。C是最基本的。
現在需要對A進行單測,但是C需要依賴於外部環境,而這個環境需要復雜而且不穩定的資料庫。怎麼辦呢?這時你就需要mock掉C。
第一步你需要在appctx文件中申明:
<bean id="serviceC" name="service_c_Mock" class="org.mockito.Mockito" factory-method="mock">
<constructor-arg value="com.x.y.x.ServiceC"></constructor-arg>
</bean>
需要注意的是bean的id必須要和A和B中autowire時使用名字一致。或者用類型也行。
然後在單測case中用@Mock或者@Resource引入sercieC。接著在單測case的Setup中調用如下語句。
MockitoAnnotations.initMocks(this);
這時你測試A的方法,A訪問B,B訪問C時,調用會落在mockito生成的一個代理上。這個時候所調用的任何方法都會返回null。
這可能不是你期望的,你可能期望在A用到的那些些方法上,輸入某個值時返回某個特定的值。這個時候你需要:
when().then();
如果這還不夠,你希望他輸入某個值的時候返回特定值,如果輸入的值不是特定值的時候,返回正常邏輯的值,你需要spy,並傳入一個serviceC的實現。
這個方法也解決了那個對於不mock的方法進行返回的問題。