想在 Groovy 中嘲笑"logger.isDebugEnabled()"是假的



我想制作"logger.isDebugEnabled()"来自groovy spock。如

logger.isDebugEnabled() >> false

我的代码是

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.env.PropertyResolver;
public class Sample{
public static final Logger logger = LoggerFactory.getLogger(Sample.class);
public void checkForAllRequiredProperties(String scope) {
if (logger.isDebugEnabled()) {
logger.debug("some message ");
}
}
}

而CCD_ 1是CCD_

您可以使用slf4j测试,该测试允许您访问TestLogger,然后您可以使用CCD_4设置所需的日志记录级别,并检查记录的消息。有关用法示例,请参阅网站。

import spock.lang.*
import uk.org.lidalia.slf4jtest.TestLogger
import uk.org.lidalia.slf4jtest.TestLoggerFactory
import static uk.org.lidalia.slf4jtest.LoggingEvent.*
class ASpec extends Specification {
TestLogger logger = TestLoggerFactory.getTestLogger(Sample)
def "a test" () {
given:
// will only enable error level
logger.setEnabledLevels(Level.ERROR) 
when:
// ...
then:
logger.getLoggingEvents() == [debug("some message ")]
}
}

您可能希望将这些日志记录测试分离到一个单独的测试目标中,以便其他测试使用正常的日志记录基础设施,或者不依赖于测试日志记录的范围。

最新更新