spock - Spock 中的 Num*Obj 是什么意思
问题描述
比方说deleteInvocation=1, notDeletedInvocation=2
这是否意味着在进入之前我将在 Post 数组中有 3 条记录?
3 * postConverter.apply(Post, null) >> PostPayload
@Unroll
def "Verify PostCoreImpl.findById return Post when includeRemoved: [#includeRemoved]"() {
setup:
def PostId = UUID.randomUUID()
def Post = Mock(Post)
def PostPayload = Mock(PostPayload)
when:
def actual = underTest.findPostById(PostId, includeRemoved, false, false)
then:
deleteInvocation * mockPostDataManager.findByIdincludeRemoved(PostId) >> Post
notDeletedInvocation * mockPostDataManager.findById(PostId) >> Post
3 * postConverter.apply(Post, null) >> PostPayload
actual == PostPayload
where:
deleteInvocation | notDeletedInvocation | includeRemoved
1 | 0 | true
0 | 1 | false
}
解决方案
首先,我建议不要使用以大写字母开头的变量名,特别是如果这些变量与实际的类名相同(!)。例如,我会改变
def PostId = UUID.randomUUID()
def Post = Mock(Post)
def PostPayload = Mock(PostPayload)
到
def postId = UUID.randomUUID()
def post = Mock(Post)
def postPayload = Mock(PostPayload)
并更新所有使用这些变量的地方。
至于您的问题,integerNumber * methodCall(...)
模拟或间谍对象上的符号意味着您要验证在测试期间methodCall(...)
准确调用的integerNumber
时间(交互检查)。
请参阅Spock 手册中的“交互”一章了解更多信息。
该符号integerNumber * methodCall(...) >> stubResult
意味着您将交互与存根结合起来,即使用模拟或间谍对象一次指定两个事物。
有关详细信息,请参阅Spock 手册章节“组合模拟和存根”。
推荐阅读
- powershell - 执行powershell脚本的任务调度程序没有得到对webRequest的响应
- ios - 如何在 Xamarin iOS 中为标题添加下划线
- google-api - 查看 G-suite 设备登录历史记录
- jboss - 使用第三方 jdbc jar 与 jboss_redirected 冲突。_DocumentBuilderfactory
- java - 我可以将 Spring bean 自动装配到 MapStruct 接口中吗?
- android - Android Studio 中的 Firebase 后端代码安排
- wordpress - 请求关于创建新闻数据库的 SQL 想法
- ms-access - Microsoft Access 的 On Format 事件中的详细信息部分中的存储过程结果
- python - 如何在管理员中忽略自定义模型管理器和覆盖的删除方法?
- node.js - 未找到 Ng 命令