Python Mock测试

本文介绍了Python中Mock测试的使用方法,包括测试函数参数、模拟不同情况、以及Mock对象的支持特性。同时,讨论了Mock测试的陷阱,如正确选择Mock对象、装饰器顺序的重要性。还探讨了Mock Class类,包括spec和spec_set选项,以及side_effect和name属性的使用,为单元测试提供更灵活的控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Mock

Mock 测试为辅助单元测试的一个模块, 通常用来替换外部接口的依赖

举例使用方法

1. Mock 测试可以用来测试调用函数的具体参数, 而不是实际去调用它.

如下例子: 当测试os.remove时,因为os.remove时python标准库里的东西,已经具有了完备的单元测试.所以,为了我们业务功能需求,使用mock测试,仅仅保证传递参数正确就可以.

from mymodule import rm

import mock
import unittest

class RmTestCase(unittest.TestCase):

    @mock.patch('mymodule.os')
    def test_rm(self, mock_os):
        rm("any path")
        # test that rm called os.remove with the right parameters
        mock_os.remove.assert_called_with("any path")

2. Mock 测试可以用来作参数的设定, 用来测试不同的情况:

如下例子: 在自定义rm函数中, 加入了文件判断操作. 因为isfileos标准库,已具有完备的单元测试,所以为了避免直接进行对文件的操作判断,为了测试我们的模块,使用mockos.pathos 进行mock操作, 判断两种不同的情况

mymodule.py

import os
import os.path

def rm(filename):
    if os.path.isfile(filename):
        os.remove(filename)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值