python模拟_Mock实现模拟python的对象

Mock库的应用

Mock在Python3.3之前是第三方库,需要安装 pip install Mock ;导入 import mock

Mock在Python3.3之后是Python标准库,导入方式为 from unittest import mock

Mock能够让我们模拟单元测试中不可用或繁重的资源;还可以模拟Python对象的行为

Mock 使用的原因:

一、环境由于客观原因由于无法搭建

二、搭建服务器的值需要大量工作才行

实现代码如下:

import requests

import shutil

def send_Mock(url):

r = requests.get(url)

return r.status_code

def visit_Mock():

return send_Mock("http://www.Teacherketang.com/")

class Remove(object):

def rmdir(self,path="E:/"):

re = shutil.rmtree(path)

if re == None:

return "seccess"

else:

return "fail"

def exists_get_rmdir(self):

return self.rmdir()

调用模块

from Mock_Test import Client_Mock

import unittest

from unittest import mock

class Mock_Test(unittest.TestCase):

def setUp(self):

self.r = Client_Mock.Remove()

def test_success_mock(self):

success_mock = mock.Mock(return_value="200")

Client_Mock.send_Mock = success_mock

self.assertEqual(Client_Mock.visit_Mock(),"200")

def test_fail_mock(self):

fail_mock = mock.Mock(return_value="404")

Client_Mock.send_Mock = fail_mock

self.assertEqual(Client_Mock.visit_Mock(), "404")

def test_remove_success(self):

remove_success = mock.Mock(return_value="success")

self.r.rmdir = remove_success

self.assertEqual(self.r.exists_get_rmdir(),remove_success())

def test_remove_fail(self):

remove_fail = mock.Mock(return_value="fail")

self.r.rmdir = remove_fail

self.assertEqual(self.r.exists_get_rmdir(),remove_fail())

if __name__ == ‘__main__‘:

unittest.main(verbosity=2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值