MockMvc和Mockito之酷炫使用

2022-05-08 07:21:11 字數 2646 閱讀 3450

由於專案中需要新增單元測試,所以查詢之後發現mockito非常適合現在的web專案。

首先需要新增pom依賴:

junit

junit

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中進行,具體**如下:

@autowired

private

private

mockmvc mockmvc;

@mock

private

demoservice demoservice;

@before

public

void setup() throws

exception

這樣mockmvc和mockito的方法就可以在下面順利使用了,例如:

@test

public

void testhelloworld() throws

exception

mockmvc可以對controller中的一次呼叫進行模擬,perform就是一次請求,mockmvcrequestbuilders進行url的請求,andexcept方法為對controller類、呼叫方法、檢視和model的預期設定,anddo進行這次請求的執行,最後andreturn返回。

mockito通過方法when()、thenreturn()等方法可以對方法進行打樁,讓後續方法按照自己的資料樁來返回,達到了隔離依賴的效果。

整體的測試**如下:

import

com.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...