весеннее тестирование, как смоделировать результат вызова метода, используя `@ TestConfiguration` - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть этот компонент, который используется где-то внутри другого компонента, который я пытаюсь проверить.Однако я не могу смутить вызов метода, поскольку он всегда говорит, что _ неизвестное свойство.

@TestConfiguration
class IntegrationTestMockingConfig {
    private DetachedMockFactory factory = new DetachedMockFactory()

    @Bean
    CloudStorage s3Client() {
        def mockedS3 = factory.Mock(CloudStorage)
        1 * mockedS3.tempDownload(_) >> {
            log.info("mocked s3 client")
            new File(ClassLoader.getSystemResource("testfiles/regular.zip").toURI())
        }
        mockedS3
    }

}

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Насмешка / заглушка вне контекста Спецификации не поддерживается.Я бы предложил использовать @ SpringBean из Спока 1.2.

@SpringBootTest
class MyTest extends Specification {

    @SpringBean
    CloudStorage mockedS3 = Mock() 

    def "test"() {
      when:
      otherBean.otherMethod()

      then:
        1 * mockedS3.tempDownload(_) >> {
               log.info("mocked s3 client")
                new File(ClassLoader.getSystemResource("testfiles/regular.zip").toURI())
        }
    }
}
0 голосов
/ 28 сентября 2018

Просто заглушите метод в setup() -методе вашего теста.Вы можете получить макет через внедрение зависимостей в тест.

...