Как проверить Logger для одного класса, используя Spock?

1

Поэтому у меня есть один класс:

ExtractJustAddedObjectTypeIDsBolt {
      private static Logger logger = LoggerFactory.getLogger(ExtractJustAddedObjectTypeIDsBolt.class);

      public void someMethod() {
        logger.error("this is an error");
      }
}

ClassOneTest extends Specification {
    ExtractJustAddedObjectTypeIDsBolt bolt;

    void setup() { 
      this.bolt = new ExtractJustAddedObjectTypeIDsBolt();
    }

    void cleanup() { // run after every feature method

    }

    def "test someMethod"() {
      given:

      when:
      bolt.someMethod();

      then:
      bolt.logger.error("this is an error");
    }
}

Но это ошибка, которую я получаю:

199  [main] ERROR member.bolt.ExtractJustAddedObjectTypeIDsBolt - this is an error

Too few invocations for:

1 * bolt.logger.error("this is an error")   (0 invocations)

Unmatched invocations (ordered by similarity):
Теги:
groovy
spock
logging

1 ответ

1
Лучший ответ

Попробуйте:

   def "test someMethod"() {
      given:
          def logger = Mock(Logger)
      and:
          bolt.logger = logger
      when:
          bolt.someMethod()
      then:
          1 * logger.error("this is an error")
    }

Вам нужно высмеять сначала Logger.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню