java - 如何实现单个 JUnit 测试用例之间的公共数据共享
问题描述
我有三个测试用例,即Test1.java
, Test2.java
, Test3.java
。在每个测试用例中,我都在与一个即将读取数据的文件进行交互。这意味着我正在读取每个测试用例的文件数据@BeforeClass
并卸载每个测试用例的相同数据@AfterClass
。
所以现在我的要求是,我想在执行这 3 个测试用例之前进行文件读取操作,并且在执行它们时应该能够在这 3 个测试用例之间共享相同的数据。
目前我已经实现了以下:
public class Test1{
private File testFile;
@BeforeClass
public static void setUpFiledata() {
// Code for reading the file data
}
@AfterClass
public static void tearDownFiledata() {
// Code for unloading the file data
}
}
public class Test2{
private File testFile;
@BeforeClass
public static void setUpFiledata() {
// Code for reading the file data
}
@AfterClass
public static void tearDownFiledata() {
// Code for unloading the file data
}
}
public class Test3{
private File testFile;
@BeforeClass
public static void setUpFiledata() {
// Code for reading the file data
}
@AfterClass
public static void tearDownFiledata() {
// Code for unloading the file data
}
}
在上面的代码中,每个测试用例都有一个@BeforeClass
&@AfterClass
方法来初始化每个测试用例通用的文件。现在我需要一种可以在每个测试用例中共享文件内容的方法。
解决方案
您可以使用测试套件来运行这些测试,并在测试套件上使用@BeforeClass
和@AfterClass
:
@RunWith(Suite.class)
@Suite.SuiteClasses({Test1.class, Test2.class, Test3.class})
public class MySuite {
@BeforeClass
public static void setUpFiledata() {
// Code for reading the file data
}
@AfterClass
public static void tearDownFiledata() {
// Code for unloading the file data
}
}
推荐阅读
- networking - 迅雷上传慢,下载没问题
- docker - 在 docker 上安装超集:/bin/sh -c /frontend-mem-nag.sh & cc /app/superset-frontend && npm ci' 返回非零代码:127
- python-3.x - 检测小物体——植物上的蚜虫
- javascript - 如何在html表格中变灰
- java - 为什么 Hibernate 不更新 OneToOne 关系的外键列?
- flutter - 在 Flutter 中绘制列表视图边界之外的内容
- r - 查找公共和唯一数字并将它们放入 R 中的新整数向量中
- validation - WTForms 和 Flask - 在另一个字段中验证文件大小
- javascript - reactjs中如何进行路由
- python - Pandas - 如何按日期选择事件并创建新的有序数据框。- 手术患者