繁体   English   中英

如何使用Spock为单个类测试Logger?

[英]How to test Logger for single class using Spock?

所以我有一堂课:

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):

尝试:

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

您需要先模拟Logger。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM