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...