这是什么groovy语法(我用它在Spock)。我不知道什么是“it”变量。我不明白JSON一样的语法作为保存的参数。谢谢你!
ne5o7dgx1#
1 * subject.statusRepository.save(...)意味着验证save方法是否按照参数约束(...)中的指定被调用一次。为了理解1 *,您需要阅读Spock中关于基数的内容。
1 * subject.statusRepository.save(...)
save
(...)
1 *
{ it.Id == request.Id it.location == location it.team == statusExisting.getTeam() it.statusEnum == StatusEnum.Status.W }
是第一个方法参数的参数条件约束,指定参数必须符合的条件,才能符合。这四行代码被称为conditions。它们是语法糖或Assert的简写,也是Spock DSL的基本构建块之一。它们是使编写和阅读Spock测试变得优雅、富有表现力和直观的一部分。我强烈建议您学习一些基本的Groovy语法,同时也阅读Spock手册。堆栈溢出并不意味着是您跳过使用新工具或新语言的学习部分的捷径。下面是您的情况的简化MCVE版本:第一个请在Groovy Web Console中试用。只要在Data构造函数调用或参数约束条件中更改一个值,就可以看到测试失败。
Data
6ss1mwsb2#
“JSON类语法作为参数”称为closure在本文中,您还将找到一个隐式it参数的解释,这是经常在闭包中使用。
it
2条答案
按热度按时间ne5o7dgx1#
1 * subject.statusRepository.save(...)
意味着验证save
方法是否按照参数约束(...)
中的指定被调用一次。为了理解1 *
,您需要阅读Spock中关于基数的内容。是第一个方法参数的参数条件约束,指定参数必须符合的条件,才能符合。
这四行代码被称为conditions。它们是语法糖或Assert的简写,也是Spock DSL的基本构建块之一。它们是使编写和阅读Spock测试变得优雅、富有表现力和直观的一部分。
我强烈建议您学习一些基本的Groovy语法,同时也阅读Spock手册。堆栈溢出并不意味着是您跳过使用新工具或新语言的学习部分的捷径。
下面是您的情况的简化MCVE版本:
第一个
请在Groovy Web Console中试用。
只要在
Data
构造函数调用或参数约束条件中更改一个值,就可以看到测试失败。6ss1mwsb2#
“JSON类语法作为参数”称为closure在本文中,您还将找到一个隐式
it
参数的解释,这是经常在闭包中使用。