当前位置: 首页 > 知识库问答 >
问题:

Junit-运行一次设置方法

屠嘉勋
2023-03-14

我用几个测试来设置一个类,而不是使用@before,我希望有一个在所有测试之前只执行一次的setup方法。这在JUnit4.8中是可能的吗?

共有1个答案

赵明亮
2023-03-14

虽然我同意@Assylias的观点,即使用@BeforeClass是一种经典的解决方案,但它并不总是很方便。用@BeforeClass注释的方法必须是静态的。对于一些需要测试用例实例的测试来说,这是很不方便的。例如,基于spring的测试使用@autowired来处理在spring上下文中定义的服务。

在本例中,我个人使用带有@before注释的常规setup()方法,并管理自定义的静态(!)布尔标志:

private static boolean setUpIsDone = false;
.....
@Before
public void setUp() {
    if (setUpIsDone) {
        return;
    }
    // do the setup
    setUpIsDone = true;
}
 类似资料:
  • 问题内容: 我通过几个测试来设置一个类,而不是使用一个我想拥有一个在所有测试之前仅执行一次的设置方法的类。Junit 4.8有可能吗? 问题答案: 尽管我同意@assylias的观点,即使用是经典的解决方案,但并不总是很方便。带有注释的方法必须是静态的。对于某些需要测试用例实例的测试而言,这非常不便。例如,基于Spring的测试可用于在Spring上下文中定义的服务。 在这种情况下,我个人使用带有

  • 我已经使用testng并行测试用例执行设置,但我只需要执行一次设置方法。 BeforeClass和BeforeMethod也会针对单个线程执行。但我需要在所有线程之前执行一次方法。 如何通过TestNG设置实现这一点? 测试NG。xml

  • 我通过终端安装了Java。我Linux5.8.0-53通用Kubuntu Java版本输出 我的VSCode设置指向 但是,我得到一个错误,即“Visual Studio代码设置(/usr/lib/jvm/java-16-openjdk-amd64)中定义的java.home变量不指向JDK。

  • 问题内容: 我们正在使用JUnit 4进行测试:我们的类不是的子类,并且它们的公共方法带有注释。一个文件有很多方法。能够通过命令行从Ant运行它们的一个子集,就像JUnit 3的本食谱一样,这将是很好的: http://today.java.net/pub/a/today/2003/09/12/individual-test- cases.html 我一直在尝试用Java反射等方法来实现此目的。由

  • 我确信这是标准的,众所周知的行为,但我不知道如何修复它。每当我使用setState(在本例中是setTheirpokeOn)时,闭包运行两次。为了让它“一次”运行,我必须在顶部添加额外的变量,以检查它是否已经运行,如果已经运行,则将其设置为之前的状态。 有没有更好的方法,或者只运行一次?谢谢 澄清: 该组件位于useEffect内部,具有一个空的依赖性数组,因此我认为它应该只在mount上运行。钩

  • 一、JUnit 是什么? JUnit 是一个 Java 语言的回归测试框架(regression testing framework),由 Kent Beck 和 Erich Gamma 建立。 Junit 测试也是程序员测试,即所谓的白盒测试,它需要程序员知道被测试的代码如何完成功能,以及完成什么样的功能。 二、IDEA 的 开始JUnit测试 测试项:查询全部用户数据 junit测试方法: