问题标签 [junit]

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 投票
5 回答
2904 浏览

java - 如何在单元测试中处理大字符串?

我有一个关于字符串测试方法的问题。每次,我都会在一个以字符串为参数的方法上编写一个新测试。

现在,出现了一些问题:

  • 如何包含带有\n、\r、\t、变音符号等的测试字符串?
  • 如何设置编码?
  • 我应该使用由 FileInputStream 打开的外部文件吗?(太多的开销,恕我直言)

那么......你有什么方法来解决这个问题?

0 投票
2 回答
496 浏览

java - JUnit:确保测试方法中的失败在@After方法中的失败之前显示

我设计了一个小型测试用例类,旨在使模拟更容易(在本例中,使用 JUnit 4 和 EasyMock)。其中一部分是在测试完成后验证模拟,因此模拟在使用@After 注释的方法中进行验证。

但是,如果测试方法本身有失败,导致测试没有完成,mock验证失败,那么JUnit上报的失败就是验证失败。但是,如果报告的失败是测试本身的失败,则它会更有用。

那么,在 JUnit 中是否有一种方法可以确保始终优先显示测试方法中的错误/失败,而不是使用 @After 注释的方法中出现的错误/失败?

0 投票
9 回答
63300 浏览

java - 使用 Junit 比较文本文件

我正在使用以下方法比较 junit 中的文本文件:

这是比较文本文件的好方法吗?什么是首选?

0 投票
4 回答
15934 浏览

java - 如何设置 Ant 'junit' 任务的工作目录?

我的 Ant 构建包含一个运行一些测试的 junit 任务。为了使测试工作,user.dir必须更改指定当前工作目录 ( ) 的属性值,但我不确定如何实现这一点。

目前有问题的任务如下所示:

请注意,我尝试使用“dir”属性和“jvmarg”任务将工作目录更改为 C:/workspace/obp-web。但是,当我在打开详细输出的情况下运行 Ant 时,我看到以下输出,这表明工作目录未正确设置:

[junit] 如果在同一 VM 中运行,则忽略 dir 属性

[junit] 使用系统属性 {java.runtime.name=Java(TM) SE Runtime Environment, sun.boot.library.path=c:\jdk6\jre\bin, java.vm.version=10.0-b23, ant. lib rary.dir=C:\java\apache-ant-1.7.0\lib, java.vm.vendor=Sun Microsystems Inc., java.vendor.url= http://java.sun.com/ , 路径。分隔符=;、java.vm.name=Java HotSpot(TM) 客户端虚拟机、file.encoding.pkg=sun.io、user.country=CA、sun.java.launcher=SUN_STANDARD、sun.os.patch.level= Service Pack 1,java.vm.specification.name=Java 虚拟机规范, user.dir=c:\workspace\obp-ear, java.runtime.version=1.6.0_07-b06, java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment, java.endorse d.dirs=c:\jdk6\jre\lib\endorsed, os.arch=x86, java .io.tmpdir=C:\Users\donal\AppData\Local\Temp\, line.separator=

0 投票
16 回答
138024 浏览

java - 获取 JUnit 4 中当前正在执行的测试的名称

在 JUnit 3 中,我可以像这样获取当前正在运行的测试的名称:

这将打印“当前测试是 testSomething”。

在 JUnit 4 中是否有任何开箱即用或简单的方法可以做到这一点?

背景:显然,我不想只打印测试的名称。我想加载存储在与测试同名的资源中的测试特定数据。你知道,约定优于配置等等。

0 投票
1 回答
900 浏览

unit-testing - JUnit 异常捕获

我正在编写一些依赖于可用数据库的测试用例,因此在 @Before 和 @After 我打开和关闭会话(休眠),以及启动和完成事务。

现在在开发过程中,有时我会在测试用例中遇到异常,因此永远不会调用 @After 并且我无法清理(或回滚我想做的事务)。

我(简要地)检查了文档,但找不到如何捕获这些意外异常,因此我可以回滚并让其余测试正常工作。

任何指针?

0 投票
3 回答
1771 浏览

java - JUnit 产生奇怪的 AssertionFailedError

我目前正在使用 JUnit 4.4 和 Java 1.6.x。在最近的代码修复之后,我们开始在我对方法的 JUnit 测试中得到这个 AssertionFailedError:

UtilityTest.testParseDate(4t):2001 年 1 月 15 日星期一 09:26:07 PST 预期:“2001 年 1 月 15 日星期一 09:26:07 PST”,但是:“2001 年 1 月 15 日星期一 09:26:07 PST”

junit.framework.AssertionFailedError: UtilityTest.testParseDate(4t): Mon Jan 15 09:26:07 PST 2001 预期:但是是:在 UtilityTest.testParseDate(未知来源)

可以看到,预期的和实际的看起来一模一样,经过多次代码检查,我们没有发现代码中有明显的错误。使用实际数据进行的测试也产生了正确的(预期的)结果。

以前有没有人在 JUnit 中看到过这种行为,如果有,你找到原因和/或修复了吗?

我自己在 Java 和 JUnit 的早期版本中也看到过同样的情况:发生时总是有些随机,通常唯一“有效”的修复方法是从头开始重新输入代码块。很奇怪,但这是消除此错误的唯一方法。这次我试图在行为中找出更“具体”的东西。

谢谢,

-理查德

0 投票
1 回答
2690 浏览

java - 如何使用 Struts 执行 Junit 测试 - Ibatis

我使用 Struts 1.2.x 和 Ibatis 2.x 版本进行开发,所以我昨天完成了,现在我想执行测试这是我第一次尝试使用 JUnit,我已经进行了测试,但是在 JavaApp 中没有在服务器上运行,所以如何模拟或生成具有服务器行为的模拟,以及为 Struts 和 Ibatis 内置环境推荐哪些模拟?

例如,如何为登录屏幕设置访问权限?

我知道 StrutsTestCase 我正在使用它,关于 Cactus 用于容器和模拟非容器场景,我想查看使用 struts 和 ibatis 的演示,因为我不知道如何从映射中检索数据。谢谢

对不起我的英语

提前致谢!

0 投票
3 回答
3077 浏览

android - 在 Mac OS 上的 eclipse 3.4.1 中运行 Junit 测试的问题

在 Mac OS 上的 eclipse 3.4.1 中运行 Junit 测试的问题

我收到此错误:“启动 AllTests”遇到问题。无法连接到虚拟机。

0 投票
1 回答
1928 浏览

java - 使用 XMLUnit RecursiveElementNameAndTextQualifier 比较 XML

我正在尝试使用 XMLUnit 1.2 比较 2 个 XML 文件。我正在使用 RecursiveElementNameAndTextQualifier() 限定符。

在我的 XML 中更改某些实体 order 的 order 时,它会导致 XMLUnit 在某些情况下传递而在其他情况下失败。

我的 XML 文件看起来像这样,我将它与一个类似的副本进行比较,其中一个属性对等点的简单位置交换。

在其中一个 XML 文件中将 int: 1 与 int: 2 交换时,测试失败。但是当用 int:3 交换 int:4 时,它会一直通过。

这是我的测试代码:

您能建议问题是什么,以及为什么 XMLUnit 在第一种情况下检测到差异而不是在第二种情况下检测到差异。这个问题有什么解决办法吗?