1. 程式人生 > >使用JUNIT進行單元測試

使用JUNIT進行單元測試


eclipse如何使用junit部署測試

在要測試的類java檔案上右鍵,選擇New -> Junit Test Case/Suite
https://mvnrepository.com/artifact/org.junit/junit5-engine/5.0.0-ALPHA

在專案上右鍵 Run As Junit Test 或者 Maven Test即可執行全部的測試用例


junit5 = JUnit Platform + JUnit Jupiter + JUnit Vintage

  • JUnit Platform是在JVM上啟動測試框架的基礎。
  • JUnit Jupiter是JUnit5擴充套件的新的程式設計模型和擴充套件模型,用來編寫測試用例。
  • Jupiter子專案為在平臺上執行Jupiter的測試提供了一個TestEngine (測試引擎)。
  • JUnit Vintage提供了一個在平臺上執行JUnit 3和JUnit 4的TestEngine。

junit5 官方中文文件:https://www.ibm.com/developerworks/cn/java/j-introducing-junit5-part1-jupiter-api/index.html


以下適用於junit4.12

執行關係:

@BeforeClass - runOnceBeforeClass
@Before - runBeforeTestMethod
@Test - test_method_1
@After - runAfterTestMethod
@Before - runBeforeTestMethod
@Test - test_method_2
@After - runAfterTestMethod
@AfterClass - runOnceAfterClass

https://blog.csdn.net/zixiao217/article/details/52951679

捆綁測試類,一次執行多個測試類SuiteClass

https://www.cnblogs.com/weilu2/p/junit_aggregating_tests_in_suites.html

核心程式碼如下

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;

@RunWith(Suite.class) //要點1
@SuiteClasses({TestJunit.class, TestJunit2.class}) //要點2
public class YourTestSuite {} //右鍵執行該類(Junit Test),對包裹的類依次進行測試

測試套件:TestCase, TestSuite

https://www.cnblogs.com/mengdd/archive/2013/04/07/3006265.html

能夠一次執行多個類,進行方法的重複測試
package com.weiwei.test;

//要點1. 注意引入的包是junit.framework.*
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;

//要點2. 繼承TestCase
public class TestTestCaseWithTestSuite extends TestCase{
    ///setUp與tearDown在所有方法之前與之後執行
    @Override
    public void setUp() {
        //before all
    }

    @Override
    public void tearDown() {
        //after all
    }

    public static Test suite() {
        //建立一個測試套件
        TestSuite suite = new TestSuite();
        //增加測試類的class物件
        suite.addTestSuite(TestJunit.class);
        suite.addTestSuite(TestJunit2.class);
        /**要點3. void junit.framework.TestSuite
            .addTestSuite(Class<? extends TestCase> testClass)
            TestJuint.class與TestJunit2.class都是TestCase的子類
        */
        return suite;
    }
}