最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 在python中单元测试是什么

    正文概述    2020-09-06   266

    在python中,单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。

    在python中单元测试是什么

    单元测试

    通常是测试一小块代码的功能,比如一个函数,类的一个方法。

    单元测试通常是开发人员做的一种测试,通常是测试函数,方法这种级别的代码块的。单元测试大都是 设计出不同的调用参数来调用函数,来看 函数 的输出是否符合预期。当然如果你的代码写的不好的话,单元测试也会比较麻烦。比如一个功能模块没有内聚到函数中,而是分散在代码文件里面。那样,就不容易用一个函数调用对这些功能进行测试。

    使用pytest进行python进行单元测试

    python内置了一个unittest,但是写起来稍微繁琐,比如都要写一个TestCase类,还得用 assertEqual, assertNotEqual等断言方法。 而使用pytest运行测试统一用assert语句就行,兼容unittest,目前很多知名开源项目如PyPy,Sentry也都在用。关于pytest的使用可以参考其官方文档,虽然有很多高级特性,但是掌握其中一小部分基本就够用了。

    下面是py.test的基本用法,以常见的两种测试类型(验证返回值和抛出异常)为例:

    def add(a, b):
        """return a + b
        Args:
            a (int): int
            b (int): int
        Returns:
            a + b
        Raises:
            AssertionError: if a or b is not integer
        """
        assert all([isinstance(a, int), isinstance(b, int)])
        return a + b
    def test_add():
        assert add(1, 2) == 3
        assert isinstance(add(1, 2) , int)
        with pytest.raises(Exception):    # test exception
            add('1', 2)

    上面是示例,真实场景下远远比这个复杂,甚至有时候构造测试的时间比写业务逻辑的时间还要长。但是再复杂的逻辑也是一点点功能堆积,如果可以确保每一部分都正确,整体上是不会出错的。单元测试同时也提醒我们,函数完成的功能尽可能单一,这样才利于测试。

    下面几个是我常用的pytest命令:

    py.test test_mod.py   # run tests in module
    py.test somepath      # run all tests below somepath
    py.test -q test_file_name.py    # quite输出
    py.test -s test_file_name.py    # -s参数可以打印测试代码中的输出,默认不打印,print没结果
    py.test test_mod.py::test_func  # only run tests that match the "node ID",
    py.test test_mod.py::TestClass::test_method  # run a single method in

    推荐课程:Python入门教程(黑马程序员)


    起源地下载网 » 在python中单元测试是什么

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元