Почему этот макет «возвращает» Закрытие, а не фактическое возвращаемое значение? - PullRequest
0 голосов
/ 04 октября 2011

Я издеваюсь над 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).

Что здесь не так?Как я могу исправить ошибку?

1 Ответ

4 голосов
/ 04 октября 2011

Вы звоните suggestQuery(String, Map), но вы издеваетесь suggestQuery(Map). Попробуйте

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