Java單元測試 - Junit

  • Eclipse或STS中有可能須要手動在build path中增長相應版本的Junit依賴
  • JUnit 4
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment= RANDOM_PORT)

@RunWith(SpringJUnit4ClassRunner.class)  
@ContextConfiguration(locations={"classpath:applicationContext.xml"})
  • JUnit 5web

    • JUnit 5開始使用org.junit.jupiter及其子依賴包
      • 5.4版本之後纔開始有org.junit.jupiter.api.Order、org.junit.jupiter.api.TestMethodOrder等類。若是pom.xml中不指定junit-jupiter-api的版本的話,有可能根據spring boot的版本(如2.1.7.RELEASE)找對應版本的JUnit 5,會沒有這幾個類。
    • 測試類(至關於一個suite?)
      • 命名一般以Test結尾
      • 若是是做爲spring boot程序啓動的,那麼須要指明@ExtendWith(SpringExtension.class)
      • 指定配置文件:@TestPropertySource(locations = { "/application.properties" })
      • 指定須要初始化的配置類:@ContextConfiguration(classes = { XXXConfig.class, YYYConfig.class })
    • 測試方法
      • 命名一般以test開始
    @ExtendWith(SpringExtension.class)
    @TestPropertySource(locations = { "/application.properties" })
    @Import({EnvironmentConfig.class})
    @ContextConfiguration(classes = { XXXConfig.class, YYYConfig.class })
    @TestInstance(Lifecycle.PER_CLASS)
    public class XXXTest {
        private static final Logger logger = LoggerFactory.getLogger(XXX.class);
    
        @Autowired
        private XXXActions xxxActions;
    
        @BeforeAll
        public void setUp() throws Exception {
        }
    
        @AfterAll
        public void afterAll() throws Exception
        {
        }
    
        @Test
        public void testYYY() throws InterruptedException {
        }
    }
  • 結合Mavenspring

    • mvn test執行全部測試用例
    • mvn test -Dtest=App2Test執行指定測試類
    • 一般須要使用maven-surefire-plugin插件
    <!-- Package as an executable jar -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.22.0</version>
            </plugin>
        </plugins>
    </build>
相關文章
相關標籤/搜索