1 * mockGoogleCalendarClient.bookTimeSlot(_)
当它运行时,我得到以下信息:
Test不定义或继承接口groovy.lang.GroovyObject的解析方法'Abstract java.lang.Object getProperty(java.lang.String)'的实现。
只有当我在测试中使用通配符时才会发生这种情况。我试着把这个错误弄清楚,但到目前为止还没有。为了取得进展,我将所描述的方法添加到测试中,如下所示:
@Override
public Object getProperty(String value)
{
return new Object()
}
在https://github.com/jeffbrown/toronaga07,Spock就是一个工作示例。
Build.Gradle
plugins {
id 'groovy'
}
repositories {
jcenter()
}
dependencies {
implementation 'org.codehaus.groovy:groovy-all:3.0.7'
testImplementation 'org.spockframework:spock-core:2.0-M4-groovy-3.0'
}
test {
useJUnitPlatform()
testLogging {
events "passed", "skipped", "failed"
}
}
src/main/groovy/toronaga07spock/calendarhelper.groovy
package toronaga07spock
class CalendarHelper {
CalendarClient client
void book(String message) {
client.bookTimeSlot message
}
}
package toronaga07spock
interface CalendarClient {
void bookTimeSlot(String s)
}
package toronaga07spock
import spock.lang.Specification
class CalendarHelperSpec extends Specification {
def "test a basic mock"() {
given:
def helper = new CalendarHelper()
def mockGoogleCalendarClient = Mock(CalendarClient)
helper.client = mockGoogleCalendarClient
when:
helper.book 'Some Booking Message'
then:
1 * mockGoogleCalendarClient.bookTimeSlot(_)
}
}
我正在将Grails2中的一系列单元测试升级到Grails3,并在使用Spock数据驱动测试格式驱动测试的域测试中遇到问题。 当我执行测试时,因为测试执行没有填充测试中的错误、字段和val引用。如前所述,这个测试适用于Grails2.5.5,所以我怀疑我缺少了Grails3中需要的一些东西。 Edited:我删除了原来在setup()中的mockForConstraints()调用,使其无效。
在以前的一个项目中,我使用Spock测试框架对Java代码进行单元测试。我发现这非常有效,所以我尝试将Spock测试添加到我当前的项目中,该项目使用Maven作为构建工具(前一个项目使用Gradle)。虽然我可以让Maven编译我的Spock测试(使用),但我无法让Maven运行这些测试。 我做了一个简单的例子来演示我在两个文件中的问题: null 当我执行(或)时,我希望运行单个单元测试并失败。
在如何模拟Grails单元测试中使用的自动有线依赖方面,我可以提供一些建议。我省略了大部分不必要的代码,只给出了测试类和被测试文件类中的相关方法 如果不对此依赖性进行攻击或嘲弄,我就会得到错误 我尝试存根密码编码器并让它返回true 但这会给出一条错误消息: 有什么方法可以用Spock来嘲笑这种依赖吗?
我正在尝试使用intellij idea运行单个spock单元测试。 考虑: 在上面的测试中,当我转到测试主体和右上下文菜单时,我得到了两种类型的测试。一个是grails测试,另一个是junit测试。 关于这个问题,公认的答案建议使用jUnit运行程序。但是使用它,代码根本无法编译(可能是因为某些插件和其他类不可用)。 (我不确定,因为这是期望的行为,因为我只是运行一个测试,而不是所有的测试。所以
在一个多模块的Android项目中,我有一个其他Android库和应用程序依赖的普通Java项目。我最近将整个项目迁移到使用Gradle构建。 我在运行纯Java项目的junit测试时遇到了一个问题,仅在Android Studio中。在命令行上,测试运行正常: 这将按预期执行单元测试,如果我插入一个作为健全性检查,我将正确地获得预期的失败。 但是,我无法在Android Studio中运行单元测
问题内容: 我的意图是使用API中描述的JUnit方法来验证类中的一种方法。 但是Eclipse向我显示了无法识别这种方法的错误消息。这两个进口到位: 我错过了什么? 问题答案: 这应该适用于JUnit 4: (答案基于此Wiki文章) 这与旧的JUnit框架(JUnit 3)相同: 注意区别:没有注释,测试类是TestCase的子类(实现静态断言方法)。