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>
相关文章
相关标签/搜索