final class A{
private B b
public getB(){
return b
}
public A(B b){
this.b = b
}
}
def "test"(){
def mockA = GroovyMock(A)
when:
service.x()
then:
1 * new A(*_) >> {mockA}
}
x(){
A a = new A(b)
B b = a.getB()
}
所以我想做一些事情
1 * a.getB() >> {mockB}
但我得到了空异常
做
def mockA=GroovyMock(A)>>{getB()>>GroovyMock(B)}
。
附言。我很惊讶地嘲笑一个作品的构造函数而不指定global:true
如何模拟返回已强制转换的模拟对象的方法。 试验方法。
我试图为一个类编写一个单元测试,这个类使用带有库中的的Google vision API。问题是,由于某种原因,我的模拟仍然调用真正的方法,然后抛出一个NPE,这破坏了我的测试。我以前从未在模拟上见过这种行为,我想知道我是不是做错了什么,是不是Spock/Groovy中有bug,还是与Google lib有关?
我在spring boot应用程序中用groovy(spock)编写了一个集成测试。其中一个应用程序bean称为,它具有以下方法: 在类中还有其他方法。在我的集成测试中,我只想模拟该特定方法的响应。以以下方式: 我希望进行其他验证,但不是这次。基本上,我想实现这一点,但与斯波克。我想取消执行方法
我有一个用注释的Groovy类,因此它得到一个私有的最终字段,我想测试它的用法。我想继续使用,而不是为了启用测试而进一步公开字段。 我正在使用Spock1.0编写测试,并尝试使用Spock的集成、模拟和截尾功能来完成测试。全局截尾可以帮助我截取调用以获得实际的实例,因此我目前的猜测是: 有趣的是,拦截实际上起作用了,确认类实际上获得了名为“dummy”的类型“logger”的对象
问题内容: 我熟悉其他语言的其他模拟库,例如Java中的Mockito,但是Python的库使我的生活变得混乱。 我有以下课程想测试。 在我的测试中,我想确保在执行时调用了,并使用正确的参数调用了它。我不想跑步,因为它会做危险的事情。 我完全不确定该如何开始。Mock的文档难以理解,而且我不确定该模拟什么或如何模拟它。 在单独保留功能的同时,如何模拟该功能? 问题答案: 我想你要找的是 这是小描述
1)创建groovy项目 2)创建接口: 3)创建spock测试: 有没有更好的方法来“解释”spock被模仿函数的最后一个参数是vararg,因此可以省略它?