Junit5快速入门指南-3
Fixtures 是测试中非常重要的一部分。他们的主要目的是建立一个固定/已知的环境状态以确保 测试可重复并且按照预期的方式运行。比如在app测试中
基类@BeforeClass 配置初始化,初始化driver,安装启动app等,基类@AfterClass 退出前清理环境
public class Junit5Demo_Fixtures {
@BeforeAll
static void beforeAll() {
System.out.println("Father BeforeAll 执行了!");
}
@BeforeEach
void beforEach() {
System.out.println("Father BeforeEach 执行了!");
}
@AfterEach
void afterEach() {
System.out.println("Father AfterEach 执行了!");
}
@AfterAll
static void afterAll() {
System.out.println("Father AfterAll 执行了!");
}
@Test
void testMethod01() {
System.out.println("Father testMethod01 执行了!");
}
@Test
void testMethod02() {
System.out.println("Father testMethod0102 执行了!");
}
}
测试执行结果
子类继承父类测试方法执行顺序,相同优先级,父类先进,子类先出
public class Junit5Demo_Fixtures1 extends Junit5Demo_Fixtures {
@BeforeAll
static void childBeforeAll() {
System.out.println("child BeforeAll 执行了!");
}
@AfterAll
static void childAfterAll() {
System.out.println("child AfterAll 执行了!");
}
@BeforeEach
void childBeforEach() {
System.out.println("child BeforEach 执行了!");
}
@AfterEach
void childAfterEach() {
System.out.println("child AfterEach 执行了!");
}
@Test
void childTestMethod01() {
System.out.println("child TestMethod01 执行了!");
}
@Test
void childTestMethod02() {
System.out.println("child TestMethod02 执行了!");
}
}
assertAll()实现1个用例中多个断言,实现断言失败仍然会继续下一个断言
@Test // 错误后依然继续执行
public void addTest() {
int resultPass = Calculator.add(4,2);
int resultFail = Calculator.add(4,2);
int result = Calculator.add(4,2);
System.out.println("add:" + result);
assertAll(("计算结果:"),
()->assertEquals(6,resultPass),
()->assertEquals(7,resultFail),
()->assertEquals(8,result));
}
@nest嵌套测试模拟支付购买流程
public class LoginAndBuy {
//存放数据的变量datamap
private static HashMap<String,Object> datamap=new HashMap<String,Object>();
@Test
void Login(){
datamap.put("login","success");
System.out.println("用户登录状态为"+datamap.get("login"));
}
@Nested
@DisplayName("第二个执行")
class pay{
@Test
void paytest(){
if (StringUtils.isNotEmpty((CharSequence) datamap.get("buy"))){
System.out.println("正在支付...");
System.out.println(datamap.get("buy"));
}else {
System.out.println("尚未购买???????????");
}
}
}
@Nested //使用nested 进行业务流测试
@DisplayName("第一次执行")
class Buy{
@Test
void buyTest(){
// 判断用户是否登录成功
if (datamap.get("login").equals("success")){
System.out.println("用户登录成功可以购买");
datamap.put("buy","ok");
System.out.println("giao"+datamap.get("buy"));
}else {
System.out.println("用户未登录成功,请先登录");
}
}
}
执行结果:
Junit5快速入门指南-3的更多相关文章
- Junit5快速入门指南-4
Junit5套件测试 @RunWith(JUnitPlatform.class) 执行套件 @SelectPackages({"packageA","packageB&q ...
- JUnit5 快速入门指南
1. 安装 在pom中添加依赖 <properties> <junit.jupiter.version>5.3.2</junit.jupiter.version> ...
- JUnit5快速入门指南-2
重复测试中容易产生的问题 //结果类 private static int result = 0; public static int count(int x) throws InterruptedE ...
- AngularJS快速入门指南20:快速参考
thead>tr>th, table.reference>tbody>tr>th, table.reference>tfoot>tr>th, table ...
- AngularJS快速入门指南19:示例代码
本文给出的大部分示例都可以直接运行,通过点击运行按钮来查看结果,同时支持在线编辑代码. <div ng-app=""> <p>Name: <input ...
- AngularJS快速入门指南18:Application
是时候创建一个真正的AngularJS单页面应用程序了(SPA). 一个AngularJS应用程序示例 你已经了解了足够多的内容来创建第一个AngularJS应用程序: My Note Save Cl ...
- AngularJS快速入门指南17:Includes
使用AngularJS,你可以在HTML中包含其它的HTML文件. 在HTML中包含其它HTML文件? 当前的HTML文档还不支持该功能.不过W3C建议在后续的HTML版本中增加HTML import ...
- AngularJS快速入门指南16:Bootstrap
thead>tr>th, table.reference>tbody>tr>th, table.reference>tfoot>tr>th, table ...
- AngularJS快速入门指南15:API
thead>tr>th, table.reference>tbody>tr>th, table.reference>tfoot>tr>th, table ...
随机推荐
- JUC学习笔记(二)
JUC学习笔记(一)https://www.cnblogs.com/lm66/p/15118407.html 1.Lock接口 1.1.Synchronized 1.1.1.Synchronized关 ...
- 浙大二院姚克团队发现新的NLRP3炎症小体抑制剂,有望用于治疗炎症疾病
期刊:Clinical and Translational Medicine 发表时间:2021年7月19日 影响因子:11.492 角膜炎是一种眼科常见疾病,也是我国主要致盲眼病之一,其特征是炎性细 ...
- Java服务突然失败:A fatal error has been detected by the Java Runtime Environment的总结
服务启动以后过段时间自动失败:A fatal error has been detected by the Java Runtime Environment 控制台中的错误信息 A fatal err ...
- [06 Go语言基础-包]
[06 Go语言基础-包] 包 什么是包,为什么使用包? 到目前为止,我们看到的 Go 程序都只有一个文件,文件里包含一个 main 函数和几个其他的函数.在实际中,这种把所有源代码编写在一个文件的方 ...
- 使用POI把查询到的数据表数据导出到Excel中,一个表一个sheet.最详细!!!
一.需求 我们会遇到开发任务: 经理:小王,你来做一下把数据库里的数据导出到Excel中,一个表是一个sheet,不要一个表一个Excel. 小王:好的,经理.(内心一脸懵逼) 二.前期准备 首先我们 ...
- 一文搞懂B树、B-树、B+树
前言 B树和B-树是同一种数据结构,如果不清楚的话,会被面试官忽悠,所以本文介绍两种数据结构,B树和B+树,废话不多数咱们开干. B树 介绍 在计算机科学中,B树是一种自平衡的树,能够保持数据有序.这 ...
- 教你使用ApiPost中的全局参数和目录参数
前面的示例中,我们都是在单一接口中填入不同的请求header.query.body参数.但在实际项目中,对于一批接口,往往具有相同的请求参数.此时,我们可以利用全局参数或者目录参数实现. 例如:常见的 ...
- Longhorn,企业级云原生容器分布式存储 - 定制默认设置
内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 云原生容器分布式存储 - 设计架构和概念 Longhorn 云原生容器分布式存储 - ...
- 轻松让你的nginx服务器支持HTTP2协议
目录 简介 HTTP1.1和HTTP2 安装最新的nginx 开启HTTP2支持 添加SSL支持 修改加密算法 Diffie–Hellman对消息进行加密 重定向所有的HTTP请求到HTTPS 启动n ...
- httpClient 下载
private void button2_Click(object sender, EventArgs e) { get(); } private async Task get() { await D ...