gpt4 book ai didi

java - 在 JUnit 4.11 中结合 @ClassRule 和 @Rule

转载 作者:IT老高 更新时间:2023-10-28 20:53:24 25 4
gpt4 key购买 nike

在 JUnit 4.10 及更低版本中,可以将规则注释为@Rule 和@ClassRule。这意味着规则在上课之前/之后以及每次测试之前/之后被调用。这样做的一个可能原因是设置一个昂贵的外部资源(通过@ClassRule 调用),然后廉价地重置它(通过@Rule 调用)。

从 JUnit 4.11 开始,@Rule 字段必须是非静态的,@ClassRule 字段必须是静态的,因此上述情况不再可行。

显然有一些解决方法(例如,明确地将 @ClassRule 和 @Rule 职责分离为单独的规则),但必须强制使用两个规则似乎很可惜。我简要地查看了使用@Rule 并推断它是否是第一个/最后一个测试,但我不相信该信息可用(至少,它不直接在描述中可用)。

在 JUnit 4.11 中是否有一种简洁的方式将 @ClassRule 和 @Rule 功能组合到单个规则中?

谢谢,罗文<​​/p>

最佳答案

从 JUnit 4.12(撰写本文时未发布)开始,可以使用 @Rule@ClassRule 注释单个静态规则。

请注意,它必须是静态的 - 使用 @Rule@ClassRule 注释的非静态规则仍然被认为是无效的(就像任何注释的 @ClassRule 在类级别工作,因此只有作为静态成员才真正有意义)。

the release notesmy pull request如果您有兴趣了解更多细节。

关于java - 在 JUnit 4.11 中结合 @ClassRule 和 @Rule,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20767486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com