入門級python測試

2021-09-12 17:42:48 字數 1856 閱讀 7084

測量粒度:

提示資訊一般為對應條件成立時的文字描述

斷言**例項:

def func_div(num1, num2):

"""除法"""

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

assert isinstance(num1, (int, float)), "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=)

# 獲取響應內容

json_str = response.data

# 轉為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都不傳的情況

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

def test_error_username_password(self):

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

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

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

# 獲取響應內容

json_str = response.data

# 轉為python型別

json_dict = json.loads(json_str)

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

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

errcode = json_dict.get('errcode')

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

python 入門級環境配置

由個人經驗得知,在學習一門新的計算機程式語言的時候,實踐至上.要想實踐,對應的環境是不可少的,一下簡單介紹python環境.由一下幾個方面組成 sublime text 安裝 sublime text 配置 對於配置sublime text 3 沒有什麼特殊的,就是要乙個基本的package con...

入門級演算法

今天我想記錄的是一些關於入門級別的演算法。將乙個字串s對映為乙個整數,使得該整數可以唯一的代表字串s。先假設字串均由大寫字母a z構成,不妨設a z為0 25,即將26個大寫字母對應到了二十六進製制中。按照將二十六進製制轉換為十進位制的思路,即可實現將字串對映為整數的需求。題目 給出n個字串 恰好由...

Python入門級組員驗證程式

group grace bill cindy alice frank bob print group while1 1 try name input 輸入姓名以驗證 group.remove name except print 未找到組員,或已被驗證過,或程式出錯。請確保沒有錯別字,然後再試一次 e...