python unittest 測試筆記 一)

2022-09-03 09:54:11 字數 1727 閱讀 8994

python 單元測試官方文件:

[python: 2.7] (

1.用import語句引入unittest模組

coding=utf-8

import json #匯入json模組

import unittest #匯入unittest模組

import os

from nose.tools import *

from tests import helper

from youcart.models import shipmentstate, shipment, shipmentservice #匯入測試類shipmentservice模組

2.定義unittest.testcase,讓所有執行測試的類都繼承於testcase類,可以將testcase看成是對特定類進行測試的方法的集合。

class shipmentservicetest(unittest.testcase):
3.在setup()方法中進行測試前的初始化工作(在每個測試用例前後做一些輔助工作),並在teardown()方法中執行測試後的清除工作,setup()和teardown()都是testcase類中定義的方法。

def setup(self):

db.drop_all()

db.create_all()

login(self, user.email, user.password)

self.user = user

from data import seeds

def teardown(self):

4.定義測試用例,名字以test開頭(乙個測試用例應該只測試乙個方面,測試目的和測試內容應該明確。主要是呼叫assertequal、assert_greater等斷言方法判斷程式執行結果和預期值是否相符。)

def test_should_find_shipment_service(self):

# 驗證物流存在

with open('./mocks/shipment-services.json', 'r') as shipments: #獲取準備好的物流資訊

# python open方法

data = json.load(shipments)

self.assertisnotnone(data)

#判定 data不為空

actual = shipmentservice.query.get(random.randint(1, 5))

def _assert_shipment_service(expected):

self.assertequal(actual, expected)

self.assertisnotnone(actual)

[_assert_shipment_service(actual) for actual in data]

# 通過for 迴圈遍歷出data的值

assert_greater(actual.get('id'), 0)

assert_greater(actual.get('external_id'), 0)

assert_greater(actual.get('name'), 0)

#判定 物流存在

5.呼叫unittest.main()啟動測試。(如果測試未通過,會輸出相應的錯誤提示,如果測試全部通過則不顯示任何東西)

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 之mock學習筆記

mock的詳細用法 英文介紹 本文先對函式的mock方法進行演示。假設有檔案fun1和fun2,fun2中的函式呼叫了fun1中的函式。利用mock方法生成fun1中函式的乙個fake返回值,在此基礎上,對fun2中的函式進行單元測試。如下 fun1檔案 usr bin env python cod...