Groovy   发布时间:2022-04-12  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了单元测试 – 如何在groovy中使用Spock框架单元测试日志记录错误大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我有一个类,它有一个记录消息的方法

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


    void startCar() {
        logger.error("car stopped working");
    }
}

如何使用spock测试框架测试错误是否已记录?

class CarTest extends Specification {
    def "test startCar"() {
        given:
        Car newCar = new Car();

        when:
        newCar.startCar();

        then:
        // HOW CAN I ASSERT THAT THE messaGE WAS LOGGED???
    }
}

解决方法

您可以检查记录器上的错误调用

@Grab(group='org.spockframework',module='spock-core',version='0.7-groovy-2.0')
@Grab(group='org.slf4j',module='slf4j-api',version='1.7.7')
@Grab(group='ch.qos.logBACk',module='logBACk-classic',version='1.1.2')

import org.slf4j.Logger

class mockLog extends spock.lang.Specification {

    public class Car {
        private Logger logger = org.slf4j.LoggerFactory.getLogger(Car.class);
        void startCar() {
            logger.error('car stopped working');
        }
    }

    def "mock log"() {
    given:
        def car = new Car()
        car.logger = mock(Logger)
    when:
        car.startCar()
    then:
        1 * car.logger.error('car stopped working')
    }
}

编辑:完整示例https://github.com/christoph-frick/spock-test-logging

大佬总结

以上是大佬教程为你收集整理的单元测试 – 如何在groovy中使用Spock框架单元测试日志记录错误全部内容,希望文章能够帮你解决单元测试 – 如何在groovy中使用Spock框架单元测试日志记录错误所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。