2011-10-04 39 views
0

我在斯波克规范嘲讽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期望(字符串,字符串),但越来越(字符串,闭包)。

这里有什么问题?我该如何纠正错误?

回答

4

您正在致电suggestQuery(String, Map),但你嘲笑suggestQuery(Map)。尝试

sControl.demand.suggestQuery { String query, Map m -> 'suggested query string' } 
+0

不确定为什么我错过了评论/接受你的答案。目前http://jira.grails.org/browse/GPSPOCK-10适用,所以我会在我能够测试您的建议时再回来查看。 – user569825

相关问题