單元測試(自我學習記錄)

2021-09-13 20:45:48 字數 2523 閱讀 3367

測試方式 概念

格式

程式**

def func_div(num1,num2):

"""除法"""

assert num2!=0,"num2不能為0"

# isinstance判斷變數或者形參的型別 即num1為int或者float型別 條件成立 返回true 

assert isinstance(num1,(int,float)),"num1應為數字型別" # 條件不成立,丟擲異常資訊 "num1應為數字型別"

assert isinstance(num2,(int,float)),"num2應為數字型別"

print(num1,num2)

func_div("10",10)

介面測試
import json

import unittest

# 1. 建立單元測試類 繼承unittest.testcase

class logintestcase(unittest.testcase):

# 2. 實現兩個方法 分別完成測試 準備和收尾工作

def setup(self):

# 每次執行測試用例前呼叫, 一般完成測試準備工作

# 開啟測試模式 如果被測試**測試沒有通過, 會在控制台顯示錯誤位置

# 建立客戶端物件 用於發起請求

def teardown(self):

# 每次執行測試用例後呼叫, 一般完成測試收尾工作

pass

# 3. 實現具體的測試用例(方法) 方法必須以test開頭

def test_empty_username_password(self):

"""測試 使用者名稱/密碼 為空 時的情況"""

# 發起測試請求, 在使用者名稱/密碼 為空的情況下, 校驗返回結果中errcode是否為-2

response = self.client.post("/login",data=)

# 獲取響應內容 把bytes型別的資料轉化為str

json_str = response.data.decode('utf-8')

# 轉為python型別

json_dict = json.loads(json_str)

# 單元測試一般使用斷言來進行邏輯判斷

self.assertin("errcode",json_dict,"登入返回的json中應該包含errcode")

errcode = json_dict.get('errcode')

self.assertequal(errcode,-2,"使用者名稱/密碼 為空時, 錯誤碼應為-2")

# todo 只傳password的情況

# todo username和password都不傳的情況

def test_error_username_password(self):

"""測試 使用者名稱/密碼 錯誤 時的情況"""

# 發起測試請求, 在使用者名稱/密碼 為空的情況下, 校驗返回結果中errcode是否為-2

response = self.client.post("/login", data=)

# 獲取響應內容

json_str = response.data.decode('utf-8')

# 轉為python型別

json_dict = json.loads(json_str)

# 單元測試一般使用斷言來進行邏輯判斷

self.assertin("errcode", json_dict, "登入返回的json中應該包含errcode")

errcode = json_dict.get('errcode')

self.assertequal(errcode, -1, "使用者名稱/密碼 為空時, 錯誤碼應為-1")

資料庫操作測試
import unittest

class datatestcase(unittest.testcase):

def setup(self):

db.create_all() # 建立資料庫中的表

def teardown(self):

"""測試完成之後要呼叫的方法,這個方法裡面可以作資料的清理操作"""

db.session.remove() # 刪除會話, 清空未執行的操作

db.drop_all() # 刪除資料庫

# 測試author的資料庫的新增操作

def test_add_author(self):

# 新增資料

author = author(name='哈哈')

db.session.add(author)

db.session.commit()

import time

time.sleep(5) # 睡眠5秒

author = author.query.filter_by(name='哈哈').first()

self.assertisnotnone(author, '新增作者資料後, 應該可以查詢到該作者資訊')

關於單元測試的學習記錄

在開發過程中,單元測試必不可少,針對本人開發經驗 主要是整合spring mybatis等開發框架 歸納以下倆種單元測試,當作學習筆記和作為簡單總結,後期如有接觸新的方式,再進行修改。1 基於spring的單元測試 註解方式 runwith springjunit4classrunner.class...

單元測試概念記錄

單元測試 孤立的執行和測試某乙個單元 注重於每乙個可能出錯的細節 優秀的單元測試的特性 1.自動的,可重複的 2.容易實現的 3.一旦寫好將來都可以使用 4.任何人都可以執行 5.單擊乙個按鈕就可以執行 6.可以快速的執行 判斷是否是單元測試 1.兩周,兩個月甚至兩年寫的單元測試還可以執行嗎?2.兩...

單元測試 單元測試文章收藏

前言 前段時間公司計畫做自動化測試,自己也打算圍繞幾個點做相關調研,現在想想呢?其實對自動化測試的概念都還不是十分清晰,當時主要還是圍繞 單元測試 向qa小夥伴學習了一段時間,現由於公司重組,學習中斷,這裡簡單記錄一些單元測試好文,留待後續參考.什麼叫自動化測試?自動化測試覆蓋率?覆蓋率如何做到的?...