Невозможно создать шпиона на конструкторе в Споке - PullRequest
0 голосов
/ 10 апреля 2019

Объявление, которое я ищу для создания шпиона:

 Producer<String, String> producer = new KafkaProducer<String, String>(producerProps)

Мои попытки создать шпиона не увенчались успехом:

 def spySvc = GroovySpy(service, global:true)
    2 * new service.createKafkaProducer() >> mockedProducer; // fail
    2 * new KafkaProducer(_) >> mockedProducer;   // fail
    2 * new KafkaProducer<String,String>(_) >> mockedProducer; //fail

Но когда я делаю создание Продюсера всвой собственный метод createKafkaProducer () и создать шпион при вызове метода, вот так, он работает:

 2 * service.createKafkaProducer() >> mockedProducer; // success

Есть идеи?

(я понимаю, что код должен быть реорганизован для использования надлежащего DI, тогда проблема тривиальна и не нуждается в шпионе)

1 Ответ

0 голосов
/ 24 апреля 2019

Я думаю, что @rafaelim верен, KafkaProducer - это статически скомпилированный код, и GroovySpies не работают с ним.

...