Groovy/Spock中的u.u是什么意思
我在一些Spock规范的源代码中看到了Groovy/Spock中的u.u是什么意思,groovy,spock,Groovy,Spock,我在一些Spock规范的源代码中看到了.\u。有人知道那是什么意思吗 比如说, def "test something"() { given: someClass = Mock(SomeClass) and: 1 * someClass.someMethod() >> returnSomething 0 * _._ when: String str = someClass.someMethod().toString()
.\u
。有人知道那是什么意思吗
比如说,
def "test something"() {
given:
someClass = Mock(SomeClass)
and:
1 * someClass.someMethod() >> returnSomething
0 * _._
when:
String str = someClass.someMethod().toString()
then:
str == 'returnedValue'
}
\
就像一个通配符
_.someMethod()
同样,表示对任何模拟对象调用的方法someMethod
myDomain._
表示在myDomain
上调用的任何内容
遵循这个逻辑,。意味着在任何模拟对象上调用任何东西。如果您不想再调用任何方法,这将非常有用:
0 * _._
额外阅读
您应该阅读更多关于
可以用于哪些类型的信息。它似乎意味着“任何交互”。请参阅哦,感谢您的快速响应。在我提供的示例中,我们为模拟对象的方法定义了所需的行为。并且它预计会被调用一次,因此1*
。但是下一行还有。\u
。这是否意味着0*.\u
意味着任何其他类的其他方法都不能被调用?0*.\u
正是您编写的方法。一些开发人员在测试方法的最后添加它,以确保没有其他交互发生。这不是一个好的实践。因为当你以这种方式开发测试时,它们会得到“修复”。例如,重构和引入代码更改是困难的,因为您引入了在编写测试时未考虑的新交互-尽管合同仍然保留,但结果失败。0*.\u
可以缩写为0*.
。有关详细说明,请参阅。