小编mhu*_*fen的帖子

Spock 单元测试断言日志调用并查看输出

我正在使用 spock 来测试 Java Spring Boot 代码。它通过 lombok @Slf4j 注释获取 logback 记录器。

带日志调用的虚拟类

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

@Slf4j
@Component
public class Clazz {

  public void method() {
    // ... code
    log.warn("message", new RuntimeException());
  }
}
Run Code Online (Sandbox Code Playgroud)

斯波克规格

import groovy.util.logging.Slf4j
import org.junit.Rule
import org.slf4j.Logger
import spock.lang.Specification

@Slf4j
class LogSpec extends Specification {

  Clazz clazz = new Clazz()

  private Logger logger = Mock(Logger.class)

  @Rule
  ReplaceSlf4jLogger replaceSlf4jLogger = new ReplaceSlf4jLogger(Clazz, logger)

  def "warning ia logged"() {

    given: "expected message"

    when: "when calling the …
Run Code Online (Sandbox Code Playgroud)

groovy logging unit-testing functional-programming spock

5
推荐指数
1
解决办法
1万
查看次数