我在Spock规范中嘲笑SearchableService:
// In SearchControllerSpec:
def sControl = mockFor(SearchableService)
sControl.demand.suggestQuery { Map m -> 'suggested query string' }
controller.searchableService = sControl.createMock()
测试中的代码段如下所示:
// In SearchController:
qSuggestion = searchableService.suggestQuery( query , allowSame:false)
// FAILS:
assert qSuggestion == 'suggested query string'
highlightedSuggestion = StringQueryUtils.highlightTermDiffs(query, qSuggestion)
断言失败 - 显然是因为qSuggestion
持有闭包而不是定义的字符串。
最终语句失败,因为highlightTermDiffs期望(String,String),但是得到(String,Closure)。
这里有什么问题?如何更正错误?
答案 0 :(得分:4)
您正在呼叫suggestQuery(String, Map)
,但您正在嘲笑suggestQuery(Map)
。尝试
sControl.demand.suggestQuery { String query, Map m -> 'suggested query string' }