问题标签 [junit-theory]

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 回答
1554 浏览

java - JUnit @Theory:有没有办法抛出有意义的异常?

我最近尝试了 Junit @Theory 测试风格:这是一种非常有效的测试方式。但是,我对测试失败时引发的异常不满意。例子 :

我希望这个测试抛出一个描述性异常,而不是得到类似的东西:

...我明白了:

有没有办法摆脱前 24 行,除了 yesDataPoint @DataPoint 导致失败之外什么都不告诉 * my *test ?这是我需要的信息,以了解失败的原因,但我真的很想知道它是如何同时失败的。

[编辑]

我用经典的 org.junit.Assert.assertEquals 替换了 org.fest.assertions 的用法,以避免混淆。此外,它也与 Eclipse 无关:当您从命令行运行 @Theory 并使其失败时,您也会得到那个长(无用/令人困惑的)堆栈跟踪。

0 投票
1 回答
4256 浏览

java - 以理论的静态方法为 Junit 测试创建临时目录

我有一些代码将文件写入我选择的目录。我目前有一个测试,它利用 JUnit Theories 在许多不同的目录中运行此代码。它看起来类似于:

问题是我希望在测试完成时删除创建的目录(以及在其中创建的文件)(无论是成功还是失败)。

理想情况下,这只是使用 a@Rule来指定一个临时目录并使用它:

但是当然这里的问题是@DataPoints 只能注解静态方法,而且 TemporaryFolder 规则一定不能是静态的。

有什么优雅的解决方案吗?

0 投票
2 回答
1384 浏览

java - junit 理论解析为 ParameterizedAssertionError 而不是失败

我像这样运行理论测试

它总是会出现 ParameterizedAssertionError 错误而没有任何有意义的消息。

反正有消息显示“正确”失败?

日志:

0 投票
3 回答
1505 浏览

java - 使用 JUnit 理论测试采用 String 参数的方法

我对 JUnit 理论很陌生。我有一个 parse() 方法,它接受一个 html 字符串作为输入并返回一个文档(HTML 文档的 DOM)

我想使用 Junit 理论为此编写单元测试。我要检查的边界情况是:

  • 空字符串
  • 空白字符串(带空格的字符串)
  • 空字符串
  • 非 Html 字符串
  • 有效的 HTML 字符串

如果是前 3 个,它应该抛出一个 IllegalArgumentException。在最后 2 个的情况下,它返回一个有效的文档对象。我已经能够为前 2 个编写测试。但我不确定如何使用 Junit Theories 测试最后 3 个。

这是我到目前为止所拥有的:

出于某种原因,没有为参数 String = null 调用测试方法。有人可以帮我测试最后三个案例吗?

控制台输出:

0 投票
3 回答
1195 浏览

python - Python中的单元测试理论?

在以前的生活中,我做了一些 Java 开发,发现JUnit Theories非常有用。Python有没有类似的机制?

目前我正在做类似的事情:

但这相当笨拙,如果第一个“案例”失败,则所有其他“案例”都无法运行。

0 投票
0 回答
85 浏览

java - 将@DataPoint 用于JUnit 的@Before 方法

我的@Before 方法需要@DataPoints。是否有实现这一目标的标准方法。

0 投票
0 回答
49 浏览

java - 在junit中使用理论来创建所有可能结果的列表?

我之前一直在使用理论来尝试不同的条目来了解如何在 jUnit 中为对象设置值。

现在我正面临这个问题,

我想使用理论做同样的事情并创建具有所有可能答案的不同对象,但然后将它们全部分组到一个列表中,以便稍后通过其他测试(断言)。

我试图通过调用一个以理论运行并使用入口点但不起作用的私有方法来创建一个空列表并添加元素......就像这样:

接着

知道如何存档吗?

最后我想得到一个包含所有可能对象的列表(在这种情况下只有 2 个)

0 投票
0 回答
413 浏览

java - JUnit Theory 数据点作为集合元素

我正在测试一种采用List参数的方法。例如:

我正在使用 JUnit 4 Theories 从一小组潜在元素中测试每个可能的列表,最长可达三个:

这可行,但感觉有点像解决方法。val1,val2,val3有点代码味道。如果我想用更长的列表进行测试,它很快就会变得非常笨拙。

我希望能够将我的理论写成:

(也许有一些注释)

当然,我知道我可以编写自己的ParameterSupplier,这将构建一个List<List<String>>- 这将需要生成所有可能的组合。我不需要解释如何做到这一点的答案。

我想知道的是,由于Theories跑步者已经知道如何创建数据点的笛卡尔积,有没有比我用过的更简洁的方法来填充由这些产品组成的集合?