问题标签 [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 1.3.7 中使用 Geb、Selenium 和 Spock 进行功能测试时出错
我正在尝试使用 Grails 1.3.7、Geb、Spock 和 Selenium 运行功能测试。这是我的 BuildConfig.groovy 文件:
测试代码是这样的:
登录页面.groovy:
GeneralSpec.groovy:
现在,当尝试使用 FirefoxDriver 运行此测试时,我收到此错误:
我已经尝试运行这个简单的测试一周了,但是,所有这些版本和异常都让我非常困惑。如果有人可以提供帮助,我将不胜感激。
谢谢
email - 如何在 Spock 中模拟特定领域的闭包
我想测试一个使用 grails 电子邮件插件发送电子邮件的 Grails 控制器。我不知道如何模拟sendMail
闭包以使交互起作用。这是我最新版本的测试代码:
控制器代码看起来像您期望的那样,例如:
如果我运行这个测试,我会得到 0multipart
次交互调用而不是 1 次。该given:
块的第二行对我来说似乎很可疑,但如果我尝试模拟 aClosure
而不是org.springframework.mail.MailMessage
我的测试崩溃。我还应该提到控制器本身按预期工作(它等不及我先弄清楚单元测试)。
已编辑
啊哈,几个小时后重新看代码,我明白为什么上面的代码不起作用了;为了让我捕捉multipart
和其他 DSL 调用,我必须模拟闭包本身,而不是 sendMail 方法(我不能这样做,因为闭包是在控制器本身内部定义的)。我可能能做的是检查方法的参数,sendMail
看看所有必要的东西都传递给它。
unit-testing - 如何使用 Spock/Build-Test-Data 对包含“where”或使用“namedquery”的方法进行单元测试?
我尝试了几种组合,但我无法测试依赖于 Grails 'where' 查询或 'named-query' 的方法。
顺便说一下,使用 Grails 2.0.3!
服务代码
测试
我缺少什么来成功对我的“where”查询或“named-queries”进行单元测试?
我得到的错误似乎与关联的属性有关。groovy.lang.MissingMethodException:没有方法签名:grails.gorm.CriteriaBuilder.cities() 适用于参数类型:
当只查询名称时,它似乎有效.. :(
java - 如何在 Spock 中模拟 HttpServletRequest
我们有一个 ServletFilter,我们想用 Spock 进行单元测试并检查对 HttpServletRequest 的调用。
以下代码抛出
java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/servlet/http/Cookie
JavaEE 5 API(以及因此的 Servlet API)位于类路径中。Spock 版本是 0.6-groovy-1.8。
我们将如何正确地做到这一点?它可以与 Mockito 一起使用,但我们会失去 Spock 嘲笑的魅力。
编辑:我们知道 Grails 和 Spring 内置的 Servlet 模拟功能,我们只想知道是否有办法使用 Spock 模拟。否则,您将混合使用模拟设置技术...
grails - 在 IntelliJ 中使用 Easyb 或 Spock 在 Grails 项目中“测试一点,编写一点代码”
这篇文章完美地描述了我的原始问题:我想遵循 TDD:
- 写一个小测试
- 看它失败
- 编写足够的代码以使其成功
- 看它成功
- 重复
我正在 IntelliJ 中从事 Grails 项目。如果我只想编写普通的 JUnit 测试,上面的帖子可以解决所有问题:
- 前往 /test/unit
- 将一些测试代码放在“class Xyz extends GroovyTestCase”类中
- 按 Shift F10
- JUnit 报告在一两秒内弹出
问题是我想使用一种非常酷的“英语描述”测试设置,比如 Easyb 或 Spock。
我该怎么办?从 Grails 为我创建的自动生成的测试类开始,然后将 Spock 的东西塞进其中,这将是一件神奇的事情。显然我不能两次使用“扩展”。这是否给出了我正在尝试做的事情的要点?
unit-testing - 类似于 Mockito 对 Spock 的回答?
在 Mockito 中,有一种很好的方法可以从与 mock 的交互中获得编程答案。例如,我们可以对 mock 进行编程以返回传递给它的方法调用的参数:
有没有办法在 Spock 中做同样的事情?
unit-testing - 如何对使用带有序列的域对象的工件进行单元测试?
我正在为我的服务编写测试(使用 Grails 2.0.4/Spock/Build-Test-Data 插件),这些服务使用其中包含序列的域对象。挑战在于该序列在单元测试中不起作用,所以我想知道如何解决这个问题?
示例:域对象
示例:测试
测试将简单地失败,因为域对象内的 transactionId 可能不可为空。域类中的序列没有按预期工作并返回 null。我错过了什么吗?或者有没有其他方法可以让序列在单元测试中按预期工作?
提前致谢。
scala - Spock 嘲笑 Akka 的 ActorRef
我试图为一个类做一个 Spock 测试,我需要检查它是否向演员发送了一条消息(比如statActor
)。我知道 Akka 有专门的集成测试库,但对于非常简单的测试来说似乎太多了。所以,我试过:
目标方法如下所示:
我以为 Spock 会使用方法创建模拟tell
。但在运行此测试后,我得到:
为什么它调用真正的ActorRef
实现?某种与 Scala 的不兼容?有什么方法可以模拟这样的课程吗?
grails - Spock 框架与 Grails 1.3.8 中的其他插件有冲突
我已经在 Grails 1.3.8 应用程序上安装了 Spock。运行测试应用程序后失败。它似乎与我的其他插件有一些冲突,但我无法弄清楚。我安装了 20 多个插件。
错误是:
这是我的构建配置:
如果我不安装任何插件,我可以毫无问题地运行 spock 测试。我不确定其中一个插件是否有特定的东西,或者关于 Spock 的东西,甚至是我做错了什么。
附加信息:我发现出于某种原因,一个/多个插件阻止 Grails 下载
spock-grails-support:0.6-groovy-1.7
使用我的插件,Grails 只下载 spock-grails-support:0.6-groovy-1.8 而不是 1.3.8 所需的 1.7。所以现在我不确定是什么阻止了 Grails 下载依赖项。
感谢您的任何建议