问题标签 [spock]
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.
grails - 将 grails 测试应用程序失败打印到控制台
在 SO 上已经有几个关于此的问题,但没有一个答案是令人满意的。我正在做测试驱动的 grails 开发。但是,由于 STS 不断崩溃,我不能用它来运行单元测试,而是在命令行上使用“grails test-app”来运行它们。这很好,但是当测试失败时,它不会将失败的原因打印到控制台。按照其他线程中的建议使用 -echoOut 和 -echoErr不会帮助,这只会打印测试期间记录或打印的内容,而不是 JUnit 或 Spock 失败的原因。所以目前,我总是必须等待 HTML 生成,然后在我的浏览器中发现故障,这真的让我慢了下来。我会接受任何解决方案,无论多么 hacky(即,将它侵入 grails 源并重新编译它对我来说很好!)。
grails - mockDomain 的特殊行为
嗨,我有以下单元测试,
投掷
有任何想法吗 ?
unit-testing - 在测试访问 Item.constraints.xyz 的类时,如何摆脱“没有这样的属性”?
单元测试中的以下星座返回:No such property: title for class: myproject.Item Possible solutions: title
项目控制器.groovy
ItemControllerSpec.groovy
我怎样才能模拟出那个约束线?
注意:我只想让测试运行而不是因为那条线而失败。
grails - 如何在 Grails Geb/Spock 测试用例中获取 sessionFactory?
我想我需要在 GebSpec 测试中刷新休眠会话,所以我想获得 sessionFactory。
看起来它应该被注入但是当我做这样的事情时: -
它因 sessionFactory 为空而失败。
groovy - 页面事件后如何使用Geb检查元素属性值
在这里得到一些帮助后,我正在使用 Geb 编写一个功能性 Web 测试,并想在事件发生之前和之后测试表单提交按钮的disabled属性值,流程应如下所示:
- 加载页面,提交按钮在页面源中声明为禁用,因此应禁用,例如
<input type="submit" class="submit" disabled="true"/>
。 - 选中页面上的复选框,这将导致一段 JQuery 代码执行,这将使用以下方式以编程方式启用禁用的提交按钮:
$('input.submit').attr('disabled', false);
我的第一次尝试是使用 assertion $('input.submit').@disabled == 'true'
,这似乎适用于页面加载后的初始检查,但是在执行我的 JQuery 代码以启用按钮后,后续检查仍然返回相同的结果。这让我想知道这种检查是否只能在页面加载时报告值并且看不到任何后续的程序更改?
然后我发现了 Geb 的 jquery 迭代,我希望我可以使用它来返回提交按钮的值并对此进行断言,$('input.submit').jquery.attr('disabled') == false
但是 Geb 文档确认所有对.jquery
属性的调用都返回了 Geb Navigator 实例,很遗憾我没有' t 认为我可以返回我想要的信息。
我还怀疑 JQuery 代码是否实际上切换了提交按钮禁用状态,我已经使用 Firebug 对此进行了广泛测试,并且可以确认这在浏览器中运行良好,所以我怀疑这要么是我对 Geb 的理解的问题,要么也许是 Geb 本身的限制?
让我感到震惊的是,在页面上执行某些操作后检查元素属性的值可能是一个常见的用例,因此我宁愿希望我错过了一些非常简单的方法。非常感谢任何能帮助我解决这个问题的指针。
干杯,
埃德
unit-testing - 禁用 grails 命令对象中的验证约束以进行单元测试(使用 Spock)
我正在尝试为 Command 对象验证编写一些单元测试。当我的命令对象有许多具有许多验证规则的字段时,为每个测试用例设置命令对象变得过于冗长和重复。
假设我有这个命令对象:
我想通过做这样的事情来测试这个:
此测试将失败,因为当调用 memberCommand.validate() 时,将使用所有约束,并且即使在测试标题“先生”的情况下也会导致验证错误。我可以为这个测试设置名称和电话,但是,我需要在测试名称验证时设置标题和电话,以及在测试电话验证时设置标题和名称。您可以想象,当命令对象有更多字段且规则更复杂时,这会变得更加烦人。
有没有办法在 grails 中禁用单元测试(使用 Spock)中的约束?
如果没有,对于这种情况还有其他建议吗?
谢谢你。
testing - 测试后如何回滚特定记录?
我有一个修改一些数据库内容的 spock / spring 测试,我想知道如何回滚该记录。
目前我执行原始 sql 语句,保存字段数据,并在成功测试后恢复该数据。但我的猜测是,这可以以更简单的方式完成吗?
spring - 如何将属性值注入 Spock 测试?
使用 Spock 测试时,我已将一些属性硬编码到 spock 测试中。该示例是一个 JDBC url。我尝试了 @Value 注释和属性文件,但这似乎不起作用,因为我的测试没有刻板印象。是否有其他解决方案来注入属性值?
spring - 如何在 Spock 测试中将 @Value 注释与 Spring PropertyPlaceholderConfigurer 一起使用?
可以将 @Value 注释与 Spring PropertyPlaceholderConfigurer 一起使用吗?
@Value<util:properties id="appProperties" location="classpath:application-test.properties" />
可以正常工作,但我想使用 1 种配置方式。现在我让他们都指向同一个属性文件。
groovy - Spock vs FitNesse
我一直在研究 Spock,并且在 FitNesse 方面有过经验。我想知道人们将如何选择一个而不是另一个 - 如果他们似乎正在解决相同或相似的问题空间。
对于那些一直在使用 Spock 或其他 groovy 代码进行测试的人来说,您是否看到任何明显的性能下降?测试应该提供即时反馈——因为我们知道,如果测试需要更长的时间运行,开发人员往往会减少运行它们的频率——所以我想知道测试执行速度的降低是否对现实世界产生了任何影响.
谢谢