python unittest 之mock學習筆記

2021-07-12 04:25:26 字數 1371 閱讀 2602

mock的詳細用法(英文介紹):

本文先對函式的mock方法進行演示。

假設有檔案fun1和fun2,fun2中的函式呼叫了fun1中的函式。利用mock方法生成fun1中函式的乙個fake返回值,在此基礎上,對fun2中的函式進行單元測試。

**如下:

fun1檔案

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# fun1.py

defflag

():return

1

fun2檔案

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# fun2.py

import fun1

defadds

(a,b,c):

if fun1.flag():

return (a+b+c)

else:

return (a+b)

對fun2利用mock測試檔案:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# mocktest.py

from fun2 import adds

import mock

import unittest

class

addtestcase

(unittest.testcase):

@mock.patch('fun2.fun1')

deftest_adds

(self, mock_fun1):

# 設定fun2中呼叫fun1中的flag為0

# 則呼叫fun2中的函式adds返回a+b

print ("設定fun2中呼叫fun1中的flag為0")

print ("則呼叫fun2中的函式adds返回前兩個引數的和")

mock_fun1.flag.return_value = 0

num = adds(1,2,3)

self.assertequal(num,3)

# 設定fun2中呼叫fun1中的flag為1

# 則呼叫fun2中的函式adds返回a+b+c

print ("設定fun2中呼叫fun1中的flag為1")

print ("則呼叫fun2中的函式adds返回三個的和")

mock_fun1.flag.return_value = 1

num = adds(1, 2, 3)

self.assertequal(num, 6)

關於類的mock用法,後續更新~

python unittest基礎用法

unittest 執行例項 基礎用法 import unittest 匯入unittest模組 defcalc a,b 被測的方法 return a b class testcale unittest.testcase 必須要整合unittest的testcase方法 deftest1 self r...

Python unittest學習筆記

python標準庫中的模組unittest提供了 測試工具。單元測試用於核實函式的某個方面沒問題 測試用例是一組單元測試,這些單元測試一起核實函式在各種情形下的行為都符合要求。良好的測試用例考慮到了函式可能收到的各種輸入,包含針對所有這些情形的測試。全覆蓋式測試用例包含一整套單元測試,涵蓋了各種可能...

python unittest測試框架介紹

介面測試隨著測試用例變多,需要構建測試用例和測試集合,就需要測試框架來完成這些工作。unittest自帶的測試框架。單個檔案測試 test 001.py import unittest class test unittest.testcase def setup self print setup d...