展开

关键词

python接口自动化测试 - mock模块基本使用介绍

=None,return_value=DEFFAULT,name=None) secp:定义mock对象的属性值,可以是列表,字符串,甚至一个对象或者实例 side_effect:可以用来抛出异常或者动态改变返回值 ,它必须是一个iterator(列表),它会覆盖return_valuereturn_value:定义mock方法的返回值,它可以是一个值,可以是一个对象(如果存在side_effect参数那这个就没有用 关键字参数, 会覆盖return_value参数值, 使用真实的add方法测试 sub.add = Mock(return_value=15, side_effect=sub.add) # 调用被测函数 ,当我们调用add方法时就会调用真实的add方法简单理解成:传递了side_effect参数且值为被测函数地址时,mock不会起作用;两者不可共存另外,side_effect接受的是一个可迭代序列,当传递多个值时 ,每次调用mock时会返回不同的值;如下 1 mock_obj = mock.Mock(side_effect= ) 2 print(mock_obj()) 3 print(mock_obj()) 4

33720

程序员必备技能之单元测试

在 mock 模块中,两个常用的类型为 Mock,MagicMock,两个类的关系是 MagicMock 继承自 Mock,最重要的两个属性是 return_value, side_effect。 from unittest.mock import MagicMockdef side_effect(arg): if arg < 0: return 1 else: return 2mock = MagicMock ()mock.side_effect = side_effect mock(-1)1 mock(1)2也可以通过 side_effect 指定它的副作用,这个副作用就是当你调用这个 mock 对象是会调用的函数 另外也可以通过为 side_effect 指定一个列表,这样在每次调用时会依次返回,如下:>>> mock_obj = Mock(side_effect = )>>>mock_obj()1>>>mock_obj

14820
  • 广告
    关闭

    90+款云产品免费体验

    提供包括云服务器,云数据库在内的90+款云计算产品。打造一站式的云产品试用服务,助力开发者和企业零门槛上云。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    数据无法模拟,自动化受阻怎么办?

    sendRequest = Mock(side_effect=AssertionError(系统错误))response = sendRequest()print(response)如上,就通过side_effect

    15620

    unittest框架核心要素及应用

    创建Mock()对象,传递异常对象 mock_obj = unittest.mock.Mock(side_effect=BaseException(自定义异常)) # mock_obj是对象,可调用对象 创建Mock()对象,传递list mock_obj = unittest.mock.Mock(side_effect=) # mock_obj是对象,可调用对象,用法和函数一样 print(mock_obj 创建Mock()对象,传递函数名 mock_obj = unittest.mock.Mock(side_effect=func) # mock_obj是对象,可调用对象,用法和函数一样 print(mock_obj

    8410

    这个骚操作,我笑了一整天

    get_new_command(command): return sudo {}.format(command.script) # Optional:enabled_by_default = True def side_effect

    10020

    开发神技能 | Python Mock 的入门

    Mock类的定义如下:class Mock(spec=None, side_effect=None, return_value=DEFAULT, wraps=None, name=None, spec_set return_value: 这个我们刚才使用过了,这个字段可以指定一个值(或者对象),当mock对象被调用时,如果side_effect函数返回的是DEFAULT,则对mock对象的调用会返回return_value side_effect: 这个参数指向一个可调用对象,一般就是函数。当mock对象被调用时,如果该函数返回值不是DEFAULT时,那么以该函数的返回值作为mock对象调用的返回值。

    70590

    开发神技能 | Python Mock 的入门

    Mock类的定义如下:class Mock(spec=None, side_effect=None, return_value=DEFAULT, wraps=None, name=None, spec_set · return_value: 这个我们刚才使用过了,这个字段可以指定一个值(或者对象),当mock对象被调用时,如果side_effect函数返回的是DEFAULT,则对mock对象的调用会返回return_value · side_effect: 这个参数指向一个可调用对象,一般就是函数。当mock对象被调用时,如果该函数返回值不是DEFAULT时,那么以该函数的返回值作为mock对象调用的返回值。

    23830

    谈一次单元测试驱动代码重构

    _get_all_valid_applinks, side_effect=Exception) t = CheckLinkRequest() with pytest.raises(Exception):

    13830

    又是一个名叫草泥马的项目:thefuc

    settings): return sudo {}.format(command.script) # 以下为可选项# 默认是否开启enabled_by_default = True# 附加命令def side_effect

    17510

    如何在Ubuntu 18.04上测试与分子的可靠角色

    lint ├── destroy ├── dependency ├── syntax ├── create ├── prepare ├── converge ├── idempotence ├── side_effect lint ├── destroy ├── dependency ├── syntax ├── create ├── prepare ├── converge ├── idempotence ├── side_effect

    30084

    如何用Molecule测试Ansible角色

    lint ├── destroy ├── dependency ├── syntax ├── create ├── prepare ├── converge ├── idempotence ├── side_effect lint ├── destroy ├── dependency ├── syntax ├── create ├── prepare ├── converge ├── idempotence ├── side_effect

    1.7K41

    研效优化实践:Python单测——从入门到起飞

    当然 return_value 和 side_effect 也可一次定义 class TestSchedule(TestCase):    # mock对象的写法    @mock.patch.object test_sch(self, mocker): # 1        workers =         mocker.patch.object(ResourceManager, get_cpu_cost, side_effect

    21060

    安利一个github上面的一个神级库thefuck,Linux命令敲错了,没关系,自动纠正你的命令

    get_new_command(command): return sudo {}.format(command.script) # Optional:enabled_by_default = True def side_effect

    44510

    扫码关注云+社区

    领取腾讯云代金券