java - 通过 @Rule 在 JUnit 中初始化列表
问题描述
我正在编写一个 JUnit 测试用例。我想初始化一个列表对象。为简洁起见,让我们初始化一个String
对象列表:
public class MyTest {
@Rule
public List<MySQLContainer> tests = Arrays.asList(new MySQLContainer("5.5"), new MySQLContainer("5.6"));
@Test
public void myTest() {
}
}
执行时,我收到以下运行时错误:
org.junit.internal.runners.rules.ValidationError: The @Rule 'tests' must implement MethodRule or TestRule.
at org.junit.internal.runners.rules.RuleMemberValidator$FieldMustBeARule.validate(RuleMemberValidator.java:234)
at org.junit.internal.runners.rules.RuleMemberValidator.validateMember(RuleMemberValidator.java:99)
at org.junit.internal.runners.rules.RuleMemberValidator.validate(RuleMemberValidator.java:93)
at org.junit.runners.BlockJUnit4ClassRunner.validateFields(BlockJUnit4ClassRunner.java:196)
at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:1
当我简单地初始化 aMySQLContainer
而不是List<MySQLContainer>
.
为什么这不起作用?我该如何解决?
我的依赖项中有 JUnit 4.12。
解决方案
尝试使用 ArrayList()
public List<MySQLContainer> tests = new ArrayList();
推荐阅读
- c# - 对蛇游戏进行单元测试
- magento - Magento 2.4 CE 是否有本地客户信用模块?
- kubernetes - 在 IBM 云上运行 Openshift API 的身份验证失败,出现 401 未经授权的错误
- java - 如何通过 web3j 从 geth 获取 txpool 中的待处理 txns 和排队 txns
- google-sheets - ArrayFormula 与电子表格中的平均公式
- mathjax - MathJax 3:\text{} 和 \textrm{} 之间有什么区别吗?
- android - 如何获得 ios 和 android 的活动推荐(在 react native 项目中)
- ffmpeg - ffmpeg 管道从 numpy 数组或 bgr24 字节生成 h264 块
- excel - Excel根据每个日期确定升序
- opencv - 我想将视频转换为 jpg 图像