Могу ли я одновременно использовать блочные и вспомогательные методы Where в споке? - PullRequest
0 голосов
/ 14 февраля 2012

У меня есть спецификация, которая по сути выглядит так:

def "my example specification"(){
given:"some mocked object which depends on a object created in the where clause"
        def display = mockDisplay()

and:"a activityt"
        def activity = new ConfigActivity(display)
when:
        activity.doStuff()
then:
        1 * display.select()

where:
        dependency << new Dependency()
}


private mockDisplay() {
        def display = Mock(ConfigActivity.Display)
        display.addDependency(dependency)
        return display
}

Я понимаю, что метод "mockDisplay ()" выходит за рамки предложения "where". Однако, поскольку некоторые спецификации имеют тенденцию запутываться в шаблонном коде (не в этом слишком упрощенном примере), мне действительно нужен какой-то способ повторного использования моих «заданных» утверждений, и при этом я действительно хотел бы использовать Спок, где "пункты, а также.

Это выполнимо? Или есть другой способ решить эту проблему?

1 Ответ

1 голос
/ 15 февраля 2012

Не существует волшебного способа доступа к переменной данных из вспомогательного метода, но вы можете передать его в качестве параметра метода.

...