ifeilong / feilong

让Java开发更简便的工具库
Apache License 2.0
115 stars 29 forks source link

使用 junit 5 #201

Open venusdrogon opened 4 years ago

venusdrogon commented 4 years ago

使用 junit 5

以下是JUnit 5 和 JUnit 4 之间的一些优点和缺点的对比,以表格形式显示:

特性/方面 JUnit 5 JUnit 4
体系结构 模块化体系结构,分为JUnit Platform、JUnit Jupiter、JUnit Vintage 单一体系结构,缺乏模块化
扩展性 强大的扩展性,支持自定义扩展和注解 相对较弱的扩展性,主要依赖于注解
注解 引入了新的注解,如@Test, @BeforeEach, @AfterEach等 主要使用的是@Test, @Before, @After等
断言 引入了新的断言 API,更丰富的断言方法 相对较简单的断言,例如assertEquals, assertTrue等
参数化测试 内置支持参数化测试,通过@ParameterizedTest实现 参数化测试较为繁琐,需要使用@RunWith(Parameterized.class)等
条件测试 引入了条件测试,通过@EnabledOnOs, @DisabledIf等 有条件测试,但相对不够灵活
动态测试 支持动态测试,通过@TestFactory实现 缺乏直接支持动态测试的机制
测试实例生命周期 提供了更灵活的测试生命周期管理,如@TestInstance 通过@BeforeClass和@AfterClass等实现
并发测试 更好的支持并发测试,通过@RepeatedTest和@TestInstance等 有限的并发测试支持,相对较弱
测试引擎 支持多种测试引擎,不仅限于JUnit Jupiter 单一测试引擎
IDE集成 需要较新的IDE版本来支持 相对较旧的IDE版本也可以支持
Java版本要求 需要 Java 5+ 需要 Java 5+

需要注意的是,具体的优点和缺点在不同的使用场景下可能会有所变化。JUnit 5 提供了更多的灵活性和功能,但在一些项目中,迁移到JUnit 5可能需要一些工作,特别是如果项目已经在使用JUnit 4并且没有特别需要使用JUnit 5的功能。

venusdrogon commented 8 months ago

image