由於專案中需要新增單元測試,所以查詢之後發現mockito非常適合現在的web專案。
首先需要新增pom依賴:
junitjunit
4.11
test
org.mockito
mockito-all
1.9.5
在controllertest類上需要新增如下配置:
//xml風格
@runwith(springjunit4classrunner.class
) @contexthierarchy() or
//註解風格
@runwith(springjunit4classrunner.class
) @contexthierarchy()
mockmvc為spring測試下的乙個非常好用的類,配合mockito使用能達到非常好的效果,他們的初始化需要在setup中進行,具體**如下:
@autowiredprivate
private
mockmvc mockmvc;
@mock
private
demoservice demoservice;
@before
public
void setup() throws
exception
這樣mockmvc和mockito的方法就可以在下面順利使用了,例如:
@testpublic
void testhelloworld() throws
exception
mockmvc可以對controller中的一次呼叫進行模擬,perform就是一次請求,mockmvcrequestbuilders進行url的請求,andexcept方法為對controller類、呼叫方法、檢視和model的預期設定,anddo進行這次請求的執行,最後andreturn返回。
mockito通過方法when()、thenreturn()等方法可以對方法進行打樁,讓後續方法按照自己的資料樁來返回,達到了隔離依賴的效果。
整體的測試**如下:
importcom.demo.service.demoservice;
import
junit.framework.assert;
import
org.junit.before;
import
org.junit.test;
import
org.junit.runner.runwith;
import
org.mockito.mock;
import
org.mockito.mockito;
import
org.mockito.mockitoannotations;
import
org.springframework.beans.factory.annotation.autowired;
import
org.springframework.test.context.contextconfiguration;
import
org.springframework.test.context.contexthierarchy;
import
org.springframework.test.context.junit4.springjunit4classrunner;
import
import
org.springframework.test.web.servlet.mockmvc;
import
org.springframework.test.web.servlet.mvcresult;
import
org.springframework.test.web.servlet.request.mockmvcrequestbuilders;
import
org.springframework.test.web.servlet.result.mockmvcresulthandlers;
import
org.springframework.test.web.servlet.result.mockmvcresultmatchers;
import
org.springframework.test.web.servlet.setup.mockmvcbuilders;
import
/*** democontrollertest. */
//註解風格
@runwith(springjunit4classrunner.class
)@contexthierarchy()
public
class
democontrollertest
@test
public
void testindex() throws
exception
@test
public
void testhelloworld() throws
exception
}
mockito 外部介面 Mockito入門
mock使用 mock主要在單元測試的時候用來模擬外部依賴介面的返回,即method stub的作用。一般而言,在常見的單元測試的編寫中,通過mock外部依賴來使得待測試的 能往下執行。在單測中,莫過於以下三個步驟,確定目標 構造條件 驗證mock場景 mock物件 mock方法 物件方法 靜態方法...
MockMvc簡單實用
用於進行單元測試,實現http請求模擬url位址訪問 廢話少說直接上 runwith springjunit4classrunner.class springboottest classes controller.class public class test public void hello t...
使用MockMvc測試controller
之前我們測試controller的時候僅僅是作為乙個pojo來進行簡單的測試,spring3.2後我們可以按照控制器的方式來測試spring mvc的controller了,這樣的話在測試控制器的時候,就沒有必要再啟動web伺服器和web瀏覽器了,下面是測試 description 測試spring...