问题标签 [junit4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
21864 浏览

junit4 - junit注解

我希望从 Java 测试中启动 GUI 应用程序 2 次。在这种情况下我们应该如何使用@annotation

要再次启动它,我应该使用哪个注释?@afterclass?

0 投票
1 回答
1310 浏览

exception - 如何让 JUnit 测试(从 Ant 脚本驱动)转储导致失败的异常堆栈?

我们从 Ant 脚本运行 JUnit 测试,如下所示。当测试失败时,我希望它输出导致失败的异常的堆栈转储,但事实并非如此。有没有什么技巧可以甩掉它?

0 投票
2 回答
9604 浏览

unit-testing - 从另一个 JUnit 测试类运行 JUnit 测试类

我有两个正在测试的类(我们称它们为 ClassA 和 ClassB)。每个都有自己的 JUnit 测试类(分别为 testClassA 和 testClassB)。

ClassA 的正常运行依赖于 ClassB,所以我想确保 ClassB 在运行 testClassA 之前通过其测试(否则 testClassA 的结果将毫无意义)。

做这个的最好方式是什么?在这种情况下,它是一个作业,所以如果可能的话,我需要将它保留在两个指定的测试类中。

如果 testClassB 的测试没有全部通过,我可以/应该从 testClassA 抛出异常吗?这将要求 testClassB 以不可见的方式运行,并且只向 testClassA 报告其成功/失败,而不是向 GUI(通过 JUnit)报告。

我正在使用 Eclipse 和 JUnit 4.8.1

更新:到目前为止,我管理的最好的是一个带有测试套件的单独文件,如下所示。这仍然不是我所追求的,因为如果 ClassA 未能通过某些测试,它仍然允许运行 ClassB 测试。

0 投票
5 回答
124137 浏览

java - 将测试文件导入 JUnit 的简单方法

有人可以建议一种简单的方法来获取对文件的引用作为junit测试类中的String/InputStream/File/etc类型对象吗?显然,我可以将文件(在本例中为 xml)粘贴为一个巨大的字符串或将其作为文件读入,但是有这样的 Junit 特定的快捷方式吗?

0 投票
7 回答
72305 浏览

java - spring - @ContextConfiguration 无法在 src/test/resources 中加载配置文件

我尝试使用以下抽象类在 src/test/resources 类路径中加载 spring 配置文件:

我在 src/test/resources 中有 applicationContext.xml 文件,但 spring 无法加载它。

谢谢你。

0 投票
6 回答
52739 浏览

unit-testing - Junit:拆分集成测试和单元测试

我继承了大量的 Junit 测试,但这些测试(除了大多数不工作)是实际单元测试和集成测试(需要外部系统、数据库等)的混合体。

所以我试图想出一种方法将它们真正分开,这样我就可以快速运行单元测试以及之后的集成测试。

选项是..

  1. 将它们拆分为单独的目录。

  2. 移至 Junit4(从 v3 开始)并注释类以将它们分开。

  3. 使用文件命名约定来说明类是什么,即 AdapterATest 和 AdapterAIntergrationTest。

3 的问题是 Eclipse 可以选择“在选定的项目/包或文件夹中运行所有测试”。因此,仅运行集成测试将变得非常困难。

2:冒着开发人员可能会开始在单元测试类中编写集成测试的风险,它只会变得混乱。

1:似乎是最巧妙的解决方案,但我的直觉说肯定有更好的解决方案。

所以这是我的问题,你如何分解集成测试和适当的单元测试?

0 投票
0 回答
1347 浏览

java - Junit 4 自定义测试类说明

我正在使用@Parameterized 注释对不同的测试文件一遍又一遍地运行测试类。

问题是在我的 IDE/构建服务器中,测试显示为"MapSimulationTest" 0-x

如何为我的MapSimulationTest类的每个实例提供一个为JUnit 4提供自定义名称的方法?在这种情况下,它将是运行测试的文件名。

0 投票
2 回答
753 浏览

unit-testing - 运行 JUnit4 测试 - 从 java 程序

我想知道如何在 java 程序中运行一些 JUnit4 测试。基本上 - 根据运行时的某些条件,我需要决定使用哪个测试运行器。使用 Junit3,我可以覆盖 TestCase 类中的 runTest 方法 - 但在 JUnit4 中,测试不扩展 TestCase 类,所以我没有什么可覆盖的......可能有一些我需要实现的方法......或者其他......

0 投票
1 回答
3429 浏览

java - 新的 JUnit 4.8.1 @Category 渲染测试套件是否几乎过时?

给定问题“如何运行属于某个类别的所有测试?” 答案是以下方法对测试组织更好吗?

  1. 定义包含所有测试的主测试套件(例如使用ClasspathSuite
  2. 设计足够的 JUnit 类别集(足够的意味着每个所需的测试集合都可以通过一个或多个类别来识别)
  3. 用相关类别限定每个测试
  4. 根据主测试套件和类别集定义目标测试套件

例子:

  • 识别速度(慢、快)、依赖(模拟、数据库、集成等)、功能(填写适用类别)、领域(填写适用类别)等的类别。
  • 要求每个测试都具有相关类别的适当资格(标记)。
  • 使用 ClasspathSuite 创建主测试套件(在类路径中找到所有测试)
  • 通过使用类别限定主测试套件来创建目标套件,例如模拟测试套件、快速数据库测试套件、域 X 测试套件的慢速集成等。

我的问题更像是征求这种方法与经典测试套件方法的批准率。一个无与伦比的好处是,每个新测试都立即包含在相关套件中,无需套件维护。一个问题是每个测试的正确分类。

0 投票
4 回答
14483 浏览

java - 当@Rule相互依赖时如何处理它们的排序

我使用在 Junit 测试用例中运行的嵌入式服务器。有时这些服务器需要一个工作目录(例如 Apache Directory 服务器)。

Junit 4.7 中的新@Rule 可以处理这些情况。TemporaryFolder-Rule 可以创建一个临时目录。可以为服务器创建自定义 ExternalResource-Rule。但是,如果我想将结果从一条规则传递给另一条规则,我该如何处理:

在此代码中,文件夹作为参数发送到服务器,以便服务器可以创建工作目录来存储数据。但是,这不起作用,因为 Junit 以文件中定义的相反顺序处理规则。临时文件夹规则不会在服务器规则之前执行。因此 TempraryFolder 中的根文件夹将为空,导致任何文件都是相对于当前工作目录创建的。

如果我颠倒类中属性的顺序,则会出现编译错误,因为在定义变量之前我无法引用它。

我正在使用 Junit 4.8.1(因为从 4.7 版本开始,规则的顺序得到了一些修复)