實際開發中,除了開發,我想測試也是必不可少的一環吧。從簡單的@Test 、main 方法測試 到 頁面測試 ,斷言,postman。 bug是無處不在,隨時發生的事,高效率的調試、檢測能夠節省大量的開發時間。 思路一肯定,敲代碼也就花不了多少時間,但是敲完代碼後的調試,檢測每每會花費許多時間。 甚者除了頁面調試(經過jsp,HTML頁面帶參過來到後臺,後臺返回參數給頁面) 其餘的一點都不會。記得去年的時候,公司作個金融產品,是跟外部的團隊合做一塊兒開發的。因爲前端頁面是由外部團隊提供給咱們的,因此有時候他們還未提供給咱們頁面的時候,咱們就本身根據接口文檔等把後臺業務相關邏輯處理好。 某天上午,公司一個新來的新手跑過來問我:XXX, 代碼寫完啦,沒有頁面怎麼測啊。 我當時就感到奇怪,沒有頁面就不能測嗎? 我反問了他一句, 他請我過去幫忙教教他,我也就回了句本身去百度就沒理了。那時候想着就是雖然測試不是咱們的主業,有測試,但是咱們開發人員自測的手段仍是要有一些的吧。恰好如今已經開始寫博客了,今天也有空,也就寫篇相關的博客,記錄記錄html
閱讀此篇博客前閱讀本人的junit 經常使用註解 + junit 斷言詳解 + junit 運行(eclipse + IDEA)前端
1. @Test , main 方法web
這個是最簡單測試了,通常用於測試一些方法,實現,好比你寫了個方法,要想看看能不能用,寫了一個算法,想看看對不對,你就能夠經過這些方法來測試。算法
2. junit 經常使用註解 + junit 斷言 Assert(請結合junit 經常使用註解 + junit 斷言詳解這篇博客 理解):spring
//junit 測試(包括斷言,測試集等) public class Test3 { /* @BeforeClass public static void beforeClass(){ System.out.println("beforeClass"); } @Before public void before(){ System.out.println("before"); }*/ @Test(timeout = 10) public void test1(){ Assert.assertEquals(1,1); // Assert.fail("fail"); } @Test(expected = ArithmeticException.class) public void test2(){ boolean flag = true; Assert.assertTrue(flag); Assert.assertEquals(1,1); } @Ignore public void ignore(){ System.out.println("ignore"); } /* @After public void after(){ System.out.println("after"); } @AfterClass public static void afterClass(){ System.out.println("afterClass"); } */ }
3.junit 對SpringMVC 的Controller 進行測試:(注意這是基於ssm 框架 web 工程 的spring MVC,像spring boot 集成的是不同的):後端
// 使用spring 測試集測試 @RunWith(SpringJUnit4ClassRunner.class) // 配置上下文配置 @ContextConfiguration("classpath*:spring-mvc.xml") public class TestController { // 模擬request,response private MockHttpServletRequest request; private MockHttpServletResponse response; // 注入loginController @Autowired private LoginController loginController ; // 執行測試方法以前初始化模擬request,response @Before public void setUp(){ request = new MockHttpServletRequest(); request.setCharacterEncoding("UTF-8"); response = new MockHttpServletResponse(); } /** * @Title:testLogin * @Description: 測試用戶登陸 */ @Test public void testLogin() { try { request.setParameter("userName", "admin"); request.setParameter("password", "2"); Assert.assertEquals("login",loginController.loginTest(request,response)) ; } catch (Exception e) { e.printStackTrace(); } } }
4. postman 自測 (postman 通常是用於自測 restful 類型的接口, 用於自測先後端對接調用的接口等)(這是postman的基礎功能 ):spring-mvc
請參考 https://blog.csdn.net/fxbin123/article/details/80428216 我的認爲講的較詳細了restful
在此,但願此篇博客能幫助到一些人。有不足之處,有問題的話能夠博客上Q我,看到就會回覆mvc
參考於https://blog.csdn.net/fxbin123/article/details/80428216 框架