Mock测试用例_测试用例库
生活随笔
收集整理的這篇文章主要介紹了
Mock测试用例_测试用例库
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
近期在重構一些舊項目,看到之前同事編寫的測試用例是使用注入SpringJUnit4ClassRunner 直接注冊實現層然后測試需要操作的方法是否可運行。雖然這樣說是可以達到測試的想法。但是如果要使用在入口的業務控制層,還要有預期的測試結果,那豈不是要寫一大堆邏輯來驗證了。。因此使用該方案是很笨重的,測試起來也麻煩。然而bug率還是沒降低多少。。
因此引入mock來進行改造該測試用例,以業務控制層為切入點,斷言預判是否符合結果。這樣就達到測試的效果了。
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import java.util.Map;
import static junit.framework.TestCase.assertNotNull;
import static org.assertj.core.api.Assertions.assertThat;
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@AutoConfigureMockMvc
@Slf4j
public class ApplicationTests {
@Autowired
protected MockMvc mvc;
@Before
public void init() {
assertNotNull(mvc);
}
@Test
public void signParamsMock() {
Map params = Maps.newHashMap();
params.put("catalogId", "1");
params.put("user", "user");
try {
//業務控制層,URI請求
MvcResult result = mvc.perform(MockMvcRequestBuilders.post("/colorfulPay/signParams", params)).andReturn();
//斷言預判結果是否返回包含true,若不符合,就拋出異常
assertThat(result.getResponse().getContentAsString()).contains("true");
log.info("result:{}", result.getResponse().getContentAsString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
總結
以上是生活随笔為你收集整理的Mock测试用例_测试用例库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP Spartacus 里 对 is
- 下一篇: 塞尔达传说荒野之息光之弓获取攻略 光之弓