问题标签 [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.

0 投票
2 回答
5351 浏览

unit-testing - Grails 的 mockDomain() 方法有哪些限制?

我正在为 Grails 1.3.5 中的服务编写 Spock 规范(单元测试),但遇到以下错误:

以前这个测试通过了,但是当我修改我的服务以在getThings()方法中包含结果排序时发生了失败。

当应用程序运行时,这似乎仍然有效,所以我怀疑这是mockDomain().


所以我的问题是它们在添加到域类的方法mockDomain()中使用与在运行时使用真正的域类的区别?如果是这样,它们是什么?

0 投票
1 回答
586 浏览

unit-testing - 为什么即使使用 Spocks 的 Mock() 模拟了底层控制器,此方法仍返回 null?

注意 EventController 中被注释掉的方法

  1. 为什么代码段会导致“无法在空对象上获取属性‘消息’ ”?
  2. 如何正确设置代码段?
  3. 一般来说,在使用Spock时,我是否需要任何mockTagLibmockControllermockLogging GrailsUnitTestCase 函数?
0 投票
1 回答
841 浏览

unit-testing - 覆盖插件(引擎盖下的 Cobertura)是否报告 Spock 规范?

随着grails test-app unit:spock -coverage我跑了测试解释在

为什么即使使用 Spocks 的 Mock() 模拟了底层控制器,该方法仍返回 null?

现在覆盖率报告“认为”该方法createCrumb尚未经过测试。

0 投票
2 回答
242 浏览

unit-testing - 模拟 domainInstance.validate() 的返回值

我正在编写一个测试控制器方法的spock单元测试。

被测控制器操作实例化一个新的域实例对象,并在保存之前对其调用验证。有没有模拟对 domainInstance.validate() 的调用,所以我可以让它返回我想要的任何东西?或者我是否必须隐藏这个实例并保存在服务方法后面才能实现这一点?

我这样做是因为在控制器单元测试的上下文中,不应涉及域对象的约束。我在其他地方进行了测试(显然是在 MyDomainClassTests 中)。如果我想将这些考虑在内,我的测试将是一个集成测试。

0 投票
1 回答
1323 浏览

hibernate - 为什么 Grails 中的 Spock 规范会导致“projectname.Event 实例的标识符从 1 更改为 2;”?

运行test-app integration:spock导致以下错误:

projectname.Event 实例的标识符从 1 更改为 2;嵌套异常是 org.hibernate.HibernateException:projectname.Event 实例的标识符从 1 更改为 2

org.springframework.orm.hibernate3.HibernateSystemException : projectname.Event 实例的标识符从 1 更改为 2;

嵌套异常是 org.hibernate.HibernateException:projectname.Event 实例的标识符在 projectname.EventControllerSpec.save 处从 1 更改为 2:一个事件(EventControllerSpec.groovy:74)

原因: org.hibernate.HibernateException:projectname.Event 实例的标识符从 1 更改为 2

  1. 这个问题从何而来?
  2. 如何解决?
  3. [可选] 有人可以创建标签“ spock ”​​吗?

来自 EventControllerSpec.groovy

来自 EventController.groovy

0 投票
2 回答
4045 浏览

java - Groovy 使用 Spock 模拟文件工厂

我决定使用 File Factory 来模拟 File 对象的构造。

和测试:

问题是它因 NullPointerException 而失败!?

使用调试器我得到:

而且,经过验证,“当前文件”确实是测试中指定的模拟文件。“currentObject.objectContent”不为空,“currentFile”不为空。

突然间,它跳转到 BaseSpecRunner.java 到这个方法:

“InvocationTargetException 是一个经过检查的异常,它包装了被调用的方法或构造函数抛出的异常。”。伟大的。

有任何想法吗?

谢谢。

0 投票
2 回答
9520 浏览

unit-testing - 如何测试使用条件查询(使用 spock)的 Grails 服务?

我正在尝试测试一个简单的服务方法。该方法主要只返回一个条件查询的结果,我想测试它是否返回一个结果(取决于查询的内容)。

问题是,我不知道如何正确正确地进行相应的测试。我试图通过 spock 来完成它,但是用任何其他测试方式做同样的事情也失败了。

谁能告诉我如何修改测试以使其适用于手头的任务?

(顺便说一句,如果可能的话,我想将其保留为单元测试。)

事件服务方法

Spock 规范

错误

0 投票
1 回答
1527 浏览

grails - spock 与 easyb

我只是简单地看了一下 easyb 和 spock ,两者似乎相似,但是 spock 似乎更注重技术,关于何时使用 which 有什么最佳实践吗?

例如,对于新的 grails 项目应该首选哪一个?对于只需要编写自动化测试的遗留 Java 项目,应该首选哪个?一个比另一个更适合集成测试吗?

那种东西..

谢谢苏达山

0 投票
3 回答
17419 浏览

junit - 选择要在 gradle 中运行的特定测试

我正在尝试修复我们凌乱的失败测试运行,不幸的是,我对 gradle 很陌生。我们目前有 testng、junit,我还想添加一些 spock 测试。当我输入“gradle test”时,我不太确定 gradle 如何确定要运行哪些测试。如何防止 testng 和/或 junit 测试运行?如何让 gradle 开始运行我的 spock 测试?

0 投票
1 回答
209 浏览

maven-2 - 是否可以在 POM 中检查 maven 版本,以使 maven 项目仅在 maven 2 时才下载插件?

问题是 Maven 3 似乎支持原生的 spock-maven 插件,但 maven 2 需要 spock-maven 插件。然而,使用 Maven 3,当包含 maven-spock 插件时,构建项目会失败。

在我的团队中,有些人还没有切换到 Maven 3,所以我需要这个 POM 来构建两个 Maven 版本。