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

在Junit中维护测试的执行顺序

劳亦
2023-03-14

目前,我正在测试一个具有CRUD操作的类(例如message)。按照后面使用的方法,我想按照创建、读取、更新和删除的顺序测试所有操作。

由于JUnit中测试用例的执行顺序依赖于JVM,所以我需要一些适当的方法来确保单元测试用例按照给定的顺序执行。

到目前为止,我提出了以下策略:

>

  • 在JUnit4中使用@fixmethodOrder(methodsorters.name_ascending)按名称的升序执行方法。然而,这需要重命名测试用例,而且对我来说似乎不是最好的方法,因为在未来需要添加更多的测试用例,现有的测试用例可能需要重构。

    那么有没有更好的方法来实现这一点,或者有没有任何替代的方法来测试这样的模型呢?

    目前使用JUnit4,如果没有解决方案满足我的情况,考虑转移到JUnit5。

  • 共有1个答案

    曾光远
    2023-03-14

    您所描述的不是单元测试。

    单元测试绝不应:

    • 触摸数据
    • 触摸文件系统
    • 接触网络
    • 依赖其他测试

    相反,您应该做的是模拟对这些外部资源的访问,以便您的测试是孤立和独立的。

     类似资料:
    • 问题内容: 我想选择执行JUnit测试的顺序。我有4个带有几种测试方法的类,我的目标是执行,例如,类A的方法Y,然后是类B的方法X,最后是类A的方法Z。 你能帮忙吗? 问题答案: 通常,您不能指定单独的单元测试的运行顺序(尽管您可以在TestNG中指定优先级,并且每个测试的优先级都不同)。但是,单元测试应该能够独立运行,因此测试的顺序无关紧要。这是一个坏习惯。如果需要按特定顺序进行测试,则应重新考

    • 问题内容: 我有一个测试用例,其中添加了一个实体,对其进行了更新并删除了该实体。因此,执行顺序在这里很重要。我希望它是: 创造 更新资料 删除 奇怪的是,对于仅一个测试用例(15个测试用例),JUnit按以下顺序执行它: 删除 更新资料 创造 。 如何告诉JUnit按特定顺序执行它们?在其他情况下,JUnit可以正常工作(串行执行)。在这种情况下,为什么JUnit表现怪异? 以下相关代码段: 变得

    • 问题内容: 假设JUnit按顺序执行测试用例是否合理:测试用例在下一个测试用例开始之前结束。JUnit版本之间是否有所不同(我的优先级在JUnit4上)?如果没有,是否有一种简单的方法可以强制JUnit按顺序执行测试? 谢谢 问题答案: 是的,默认情况下,我相信它会按顺序运行测试。 JUnit 4.6引入了一个实验来并行运行测试- 我不知道它的当前状态。我希望并行机制在默认情况下仍保持“选择加入”

    • 问题内容: 我有一个测试套件,其结构如下 在以上结构中,我想执行testmethod4()作为最后一个。即)最后执行。有一个@FixMethodOrder注释,它按顺序执行方法而不是testclass。是否有任何机制可以同时维护测试类和测试方法中的顺序。使用@FixMethodOrder,我可以通过重命名测试方法的名称来执行该方法,但是我不能指示junit将测试类作为最后一个(最后一个)执行。 问

    • 主要内容:1 概述,2 测试执行顺序,3 例子,4 结论1 概述 在本指南中,我们将学习如何按顺序执行测试。默认情况下,JUnit以任何顺序执行测试。 2 测试执行顺序 要更改测试执行顺序,只需使用@FixMethodOrder注释测试类并指定可用的MethodSorters之一: @FixMethodOrder(MethodSorters.JVM):按照JVM返回的顺序保留测试方法。此顺序可能因运行而异。 @FixMethodOrder(Method