junit5
文章平均质量分 73
老马啸西风
Github: https://github.com/houbb
Email:houbinbin.echo@gmail.com
展开
-
junit5 入门系列教程-01-junit5 简单入门例子
目录目录Junit5简介JDK 支持快速开始Maven 导入测试案例变化文档参考Junit5JUnit5 is the next generation of JUnit. 目标是为JVM上的开发人员端测试创建一个最新的基础。这包括关注Java 8和以上版本,以及支持多种不同的测试风格。JUnit 5是JUnit Lambda和它在Indie...原创 2018-06-24 16:36:15 · 53707 阅读 · 5 评论 -
junit5 入门系列教程-17-junit5 动态测试(DynamicTest)
目录目录动态测试生命周期测试案例系列导航动态测试在标注中描述的JUnit Jupiter中的标准@Test注释与JUnit 4中的@Test注释非常相似。两者都描述了实现测试用例的方法。这些测试用例是静态的,因为它们是在编译时完全指定的,并且它们的行为不能被运行时发生的任何事情所改变。假设提供了一种基本的动态行为形式,但在其表达性上却被故意限制。除了这些标...原创 2018-06-27 08:49:50 · 40157 阅读 · 0 评论 -
junit5 入门系列教程-18-junit5 拓展模块总览(Extend Model)
目录目录拓展模型系列导航拓展模型与JUnit 4对比,Runner、@Rule和@ClassRule扩展点不同, JUnit Jupiter扩展模型由一个统一的概念组成:扩展(Extension) API。 但是请注意,这个扩展本身只是一个标记接口。系列导航 系列导航...原创 2018-06-27 09:04:05 · 36838 阅读 · 0 评论 -
junit5 入门系列教程-19-junit5拓展实体注册(Register Extension)
目录目录注册拓展声明扩展注册扩展登记顺序编程扩展注册静态字段实例化字段(Instance Fields)自动扩展注册开启自动扩展注册扩展继承系列导航注册拓展可以通过@ExtendWith以声明方式注册,可以通过@RegisterExtension以编程方式注册,也可以通过Java的ServiceLoader机制自动注册。声明扩展注册...原创 2018-06-27 09:06:10 · 37701 阅读 · 1 评论 -
junit5 入门系列教程-20-junit5 拓展实体条件测试
目录目录条件测试去活化条件(Deactivating Conditions)正则匹配语法系列导航条件测试ExecutionCondition 定义用于编程、条件测试执行的扩展API。执行条件对每个容器(例如,测试类)进行评估,以确定它包含的所有测试是否应该基于提供的ExtensionContext执行。 类似地,对每个测试执行条件进行评估,以确定是否...原创 2018-06-27 09:07:32 · 36678 阅读 · 0 评论 -
junit5 入门系列教程-21-junit5 拓展实体测试实例后处理(Instance Post-processing)
目录目录测试实例后处理示例系列导航测试实例后处理TestInstancePostProcessor 为希望发布流程测试实例的扩展定义了API。常见的用例包括向测试实例注入依赖项、在测试实例上调用自定义初始化方法等。示例 MockitoExtension SpringExtension系列导航 系列导航...原创 2018-06-27 09:10:43 · 36596 阅读 · 0 评论 -
junit5 入门系列教程-30-junit5 实战例子 junit performance
目录目录实战项目junitperfjunit5 的新特性注解定义使用代码地址系列导航实战项目本系列的学习也正是为了将原来的项目,从 junit4 升级到 junit5junitperf Java 性能测试框架工具-JunitPerfjunit5 的新特性注解定义ps: 为了简化说明,删除了其他的属性。imp...原创 2018-07-02 11:35:32 · 38040 阅读 · 1 评论 -
junit5 入门系列教程-22-junit5 拓展实体-参数化测试解决方案(Parameter Resolution)
目录目录ParameterResolver注意系列导航ParameterResolverParameterResolver 定义用于在运行时动态解析参数的扩展API。如果测试构造函数或@Test、@RepeatedTest、@ParameterizedTest、@TestFactory、@BeforeEach、@BeforeAll或@AfterAll方法接受...原创 2018-06-28 08:17:03 · 40053 阅读 · 0 评论 -
junit5 入门系列教程-28-junit5 拓展实体-测试生命周期回调
目录目录测试生命周期回调接口开始和结束的回调系列导航测试生命周期回调接口下面的接口定义了在测试执行生命周期的各个点上扩展测试的api。请参阅下面的小节,了解示例和Javadoc中的每个接口参见 org.junit.jupiter.api.extension实现多个扩展api扩展开发人员可以选择在一个扩展中实现任意数量的这些接口。有关...原创 2018-06-28 08:18:34 · 36580 阅读 · 0 评论 -
junit5 入门系列教程-23-junit5 拓展实体-异常处理器(Exception Handle)
目录目录TestExecutionExceptionHandler实例系列导航TestExecutionExceptionHandlerTestExecutionExceptionHandler 为希望处理测试执行期间抛出的异常的扩展定义了API。下面的示例显示了一个扩展,该扩展将包含IOException的所有实例,但将重新抛出任何其他类型的异常。...原创 2018-06-28 08:19:59 · 37036 阅读 · 0 评论 -
[junit5 入门系列教程-24-junit5 拓展实体-测试上下文(Test Context)
目录目录测试上下文实例系列导航测试上下文@TestTemplate方法只能在注册至少一个TestTemplateInvocationContextProvider时执行。每个这样的提供者都负责提供TestTemplateInvocationContext实例流。每个上下文可以指定一个自定义显示名称和一个附加扩展列表,这些扩展只用于@TestTemplat...原创 2018-06-28 08:21:10 · 37515 阅读 · 0 评论 -
junit5 入门系列教程-25-junit5 拓展实体-存储状态(Keeping State in Extensions)
目录目录在 Extensions 中保存状态使用带有方法级范围的存储ExtensionContext.Store.CloseableResource系列导航在 Extensions 中保存状态通常,一个扩展只实例化一次。 因此,问题变得相关了:如何将状态从一个扩展调用保存到下一个扩展?ExtensionContext API为此目的提供了一个存储。 扩展可...原创 2018-06-28 08:23:17 · 36499 阅读 · 0 评论 -
junit5 入门系列教程-26-junit5 拓展实体-工具类
目录目录拓展中支持的工具类注解支持类支持反射支持系列导航拓展中支持的工具类junit-platform-commons 构件公开了一个名为 org.junit.platform.commonsupport 的包, 该包包含维护的实用方法,用于处理注释、类、反射和类路径扫描任务。我们鼓励 TestEngine 和扩展作者使用这些受支持的方法,以便与JUn...原创 2018-06-28 08:24:29 · 36633 阅读 · 0 评论 -
junit5 入门系列教程-27-junit5 拓展实体-用户代码和扩展的相对执行顺序
目录目录用户代码和扩展的相对执行顺序相对顺序步骤系列导航用户代码和扩展的相对执行顺序当执行包含一个或多个测试方法的测试类时,除了用户提供的测试和生命周期方法外,还会调用许多扩展回调。相对顺序下图说明了用户提供的代码和扩展代码的相对顺序。BeforeAllCallBack //(1) @BeforeAll //(2) ...原创 2018-06-28 08:25:36 · 36775 阅读 · 0 评论 -
junit5 入门系列教程-16-junit5 测试模板(@TestTemplate)
目录目录测试模板实例系列导航测试模板@TestTemplate方法不是常规的测试用例,而是测试用例的模板。因此,根据注册提供程序返回的调用上下文的数量,将多次调用它。因此,它必须与注册的 TestTemplateInvocationContextProvider 扩展一起使用。 测试模板方法的每次调用都表现为对相同生命周期回调和扩展的完全支持的常规@T...原创 2018-06-27 08:48:15 · 38801 阅读 · 1 评论 -
junit5 入门系列教程-14-junit5 参数化测试(@ParameterizedTest)
目录目录参数化测试实例需要使用参数源的参数(Sources of Arguments)@ValueSource实例@EnumSource@MethodSource自动搜索原始类型的流多个参数外部的静态工厂方法@CsvSource@CsvFileSource@ArgumentsSource参数转换扩大转换(Widening Conversi...原创 2018-06-27 08:45:49 · 60852 阅读 · 6 评论 -
junit5 入门系列教程-02-junit5 注解详解
目录目录Junit5 注解@Test@ParameterizedTest@RepeatedTest@TestFactory@TestInstance@TestTemplate@DisplayName@BeforeEach@AfterEach@BeforeAll@AfterAll@Nested@Tag@Disabled@ExtendWith元注释,注释...原创 2018-06-26 10:54:55 · 41674 阅读 · 3 评论 -
junit5 入门系列教程-03-junit5 测试类和方法
目录目录测试类和方法标准案例系列导航测试类和方法测试方法是使用@Test、@RepeatedTest、@ParameterizedTest、@TestFactory或@TestTemplate直接或元注释的任何实例方法。测试类是包含至少一个测试方法的任何顶层或静态成员类。标准案例 注意测试类和测试方法都可以不设置为 public。...原创 2018-06-26 10:57:06 · 39164 阅读 · 0 评论 -
junit5 入门系列教程-04-junit5 展现名称(DisplayName)
目录目录测试方法的名字说明例子系列导航测试方法的名字以前在看 Spock 的时候,提到一个胜于 Junit4 的优势就是可以灵活的定义测试方法和类的名称。说明Junit5 中的 @DisplayName 就为我们提供了实现这种方式的名称。测试类和测试方法可以声明自定义显示名称——带有空格、特殊字符甚至表情符号——将由测试运行器和测试报告显示。...原创 2018-06-26 10:59:43 · 40306 阅读 · 0 评论 -
junit5 入门系列教程-05-junit5 断言(assert)
目录目录Assert实例三方 jar系列导航AssertJUnit Jupiter附带了许多JUnit 4拥有的断言方法,并添加了一些可以很好地用于Java 8 lambdas的断言方法。 所有JUnit木星断言都是 org.junit.jupiter.api.Assertions 中的静态方法断言类。实例AssertTest.javai...原创 2018-06-26 11:01:01 · 51736 阅读 · 0 评论 -
junit5 入门系列教程-06-junit5 假设(Assumptions)
目录目录假设实例系列导航假设JUnit Jupiter附带了JUnit 4提供的假设方法的一个子集,并添加了一些可以很好地用于Java 8 lambdas的假设方法。所有的JUnit Jupiter假设都是在 org.junit.jupiter.api.Assumptions 的静态方法。实例AssumptionsDemo.javapack...原创 2018-06-26 11:02:17 · 37507 阅读 · 0 评论 -
junit5 入门系列教程-07-junit5 禁用(Disabled)
目录目录@Disabled实例整个类单个方法系列导航@Disabled可以通过 @Disabled 注释、条件测试执行中讨论的注释之一 或自定义ExecutionCondition来禁用整个测试类或单个测试方法。实例整个类整个类中的测试方法,都会被跳过DisabledClassDemo.javaimport org.ju...原创 2018-06-26 11:03:27 · 37942 阅读 · 0 评论 -
junit5 入门系列教程-08-junit5 条件执行
目录目录按条件执行测试用例Composed Annotations操作系统条件Java 运行环境条件系统属性条件环境变量条件脚本依赖条件注意代码脚本绑定系列导航按条件执行测试用例JUnit Jupiter中的ExecutionCondition扩展API允许开发人员以编程方式启用或禁用容器或测试。 这种情况最简单的例子是内置的DisabledC...原创 2018-06-26 11:07:45 · 38312 阅读 · 0 评论 -
junit5 入门系列教程-09-junit5 标签和过滤(@Tag)
目录目录标签和过滤语法规则实例系列导航标签和过滤可以通过 @Tag 注释对测试类和方法进行标记。这些标记稍后可用于筛选测试发现和执行。语法规则标签不能为空或 null。trim() 的标记不能包含空格。trim() 的标签不能包含ISO控制字符。trim()的标记不能包含以下任何保留字符:,: 逗号(: 左括号): 右括号&...原创 2018-06-26 11:09:03 · 38484 阅读 · 0 评论 -
junit5 入门系列教程-10-junit5 测试实例生命周期
目录目录测试实例生命周期修改默认的生命周期系列导航测试实例生命周期为了让单独的测试方法在隔离中执行,并且为了避免由于可变测试实例状态而产生的意外副作用, JUnit在执行每个测试方法之前创建了一个新的测试类的实例。 这种“每个方法”的测试实例生命周期是JUnit Jupiter中的默认行为,类似于JUnit的所有以前版本。如果您希望JUnit Jupite...原创 2018-06-26 11:10:12 · 37643 阅读 · 0 评论 -
junit5 入门系列教程-11-junit5 内嵌测试(Nested Tests)
目录目录嵌套测试实例说明系列导航嵌套测试嵌套测试使测试编写者有更多的能力来表达几组测试之间的关系。这是一个精心设计的例子。实例TestingAStackDemo.java堆栈测试例子import static org.junit.jupiter.api.Assertions.assertEquals;import static o...原创 2018-06-26 11:11:20 · 39888 阅读 · 0 评论 -
junit5 入门系列教程-12-junit5 依赖注入构造器、方法
目录目录依赖注入TestInfoParameterResolverRepetitionInfoParameterResolverTestReporterParameterResolver@ExtendWithRandomParametersExtension其他系列导航依赖注入在所有以前的JUnit版本中,都不允许测试构造函数或方法具有参数(至少不...原创 2018-06-27 08:37:39 · 39499 阅读 · 0 评论 -
junit5 入门系列教程-13-junit5 测试接口及默认方法
目录目录测试接口和默认方法定义接口测试案例接口契约接口定义测试类系列导航测试接口和默认方法JUnit Jupiter允许在接口默认方法上声明@Test、@RepeatedTest、@ParameterizedTest、@TestFactory、@TestTemplate、@BeforeEach和@AfterEach。 如果测试接口或测试类被@Tes...原创 2018-06-27 08:41:09 · 41187 阅读 · 0 评论 -
junit5 入门系列教程-14-junit5 重复测试(@RepeatedTest)
目录目录重复测试特性说明测试案例实例系列导航重复测试JUnit Jupiter提供了通过使用@RepeatedTest注释方法并指定所需重复次数的能力。重复测试的每次调用都表现为对相同生命周期回调和扩展的完全支持的常规@Test方法的执行。下面的示例演示如何声明一个名为repeatedTest()的测试,它将自动重复10次。@RepeatedTest...原创 2018-06-27 08:43:44 · 40819 阅读 · 0 评论 -
junit5 入门系列教程-29-junit5 拓展实体-Junit 平台启动器API(JUnit Platform Launcher API)
目录目录JUnit Platform Launcher API发现测试类执行测试类系列导航JUnit Platform Launcher APIJUnit 5最突出的目标之一是使JUnit与其编程客户端(构建工具和ide)之间的接口更加强大和稳定。 目的是将发现和执行测试的内部内容与所有必需的外部过滤和配置分离开来。JUnit 5引入了启动器的概念,可以...原创 2018-06-28 08:29:05 · 40616 阅读 · 0 评论