【发布时间】:2015-07-17 10:39:22
【问题描述】:
我正在运行一个 spock 测试,在该测试中我需要等待来自服务或控制器的异步事件发生,并断言其内容为真。比如下面的伪代码……
def "testA"() {
when:
//start the event
service.startEvent()
//wait for event to complete, and get it's contents
waitFor { event.complete }
result << event.eventContents
then:
data == [1,2,3,4]
}
我的用例是我正在对我的应用程序中的电子邮件功能进行功能测试。我需要应用程序发送邮件,等待电子邮件到达,并断言它的内容是真实的。
【问题讨论】:
-
我尝试使用platform-core plugin,但我无法按照文档进行操作:/
-
我可能没有抓住重点,但你不能只使用mailinator 之类的东西吗?将电子邮件发送至 yourTestUser123@mailinator.com,前往 mailinator 网站上的
yourTestUser123@mailinator.com收件箱,并对其内容做出一些断言? -
这是个好主意!我使用mailgun,所以它应该是完全可能的。虽然我想我正在寻找的是一种在 Spock 内部触发和等待事件的方法。万一我在不久的将来遇到任何我不能简单地开车去的东西,我可以有一个可重用的实现。
标签: events grails asynchronous spock geb