0

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) を取得しています。

ここで何が問題なのですか?エラーを修正するにはどうすればよいですか?

4

1 に答える 1

4

あなたは電話suggestQuery(String, Map)していますが、あなたは嘲笑していますsuggestQuery(Map)。試す

sControl.demand.suggestQuery { String query, Map m -> 'suggested query string' }
于 2011-10-04T17:51:54.080 に答える