Groovy метод макета с параметрами - PullRequest
4 голосов
/ 15 марта 2012

Я пытался высмеять некоторые классы мавена.

Я знаю, что могу смоделировать интерфейс или класс с картами

def projectMock = [ getBasedir: { new File("") } ] as MavenProject

Но как мне издеваться над методом, который получает параметры?

Я пытался использовать «MockFor» для этого:

def artifactFactoryMockContext = new MockFor(ArtifactFactory)
artifactFactoryMockContext.demand.createArtifact(1) {groupId, artifactId, version, classifier, type -> artifact }
def artifactFactory = artifactFactoryMockContext.proxyInstance()

Но я получаю исключение UnsupportedOperationException. Что я тут не так делаю?

1 Ответ

8 голосов
/ 15 марта 2012

Пока вы в порядке, используя принуждение Groovy Map для насмешек вместо фреймворка, вам пригодятся такие вещи:

def fooMock = [ bar: { baz, thing -> 42 } ] as Foo

Теперь fooMock.bar("arg1", "arg2") вернется 42.

...