1. 程式人生 > 其它 >Python-unittest-ddt(應用到類,實際引數化)

Python-unittest-ddt(應用到類,實際引數化)

之前我們講到了讀取excel操作,不知道的可以檢視一下

https://www.cnblogs.com/yushengaqingzhijiao/p/15575765.html

我們將讀取出來的資料 進行列印 檢視一下是否能夠正常讀取

  • 在測試類測試讀取資料是否正常
import unittest
import os
from ddt import ddt, data
from test_demo.class_2021_11_15 import login_check
from class_excel.handle_excel import HandleExcel

file_path
= os.path.join(os.path.dirname(os.path.abspath(__file__)), '
login_cases.xlsx') exc = HandleExcel(file_path, "login") cases = exc.read_all_data() exc.close_file() print(cases)

=================================================================

C:\Users\admin\AppData\Local\Programs\Python\Python37-32\python.exe D:/pythonProject/class_excel/test_login.py
[{'user': 'test', 'password': '123456', 'check': '{"code": 0, "msg": "登入成功"}'}, {'user': 'test', 'password': 1234561212, 'check': '{"code": 1, "msg": "賬號或密碼不正確"}'}, {'user': 'test12221', 'password': 123456, 'check': '{"code": 1, "msg": "賬號或密碼不正確"}'}]


Process finished with exit code 0

  • 引入測試類,並進行引數化操作
import unittest
import os
from ddt import ddt, data
from test_demo.class_2021_11_15 import login_check
from class_excel.handle_excel import HandleExcel

file_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'login_cases.xlsx')
exc 
= HandleExcel(file_path, "login") cases = exc.read_all_data() exc.close_file() print(cases) @ddt class TestLogin(unittest.TestCase): @data(*cases) # * 表示需要解包,傳入引數化的變數 def test_login(self, case): # 定義引數化接收的值,隨便定義 # 1.測試資料  2.測試步驟 res = login_check(case['user'], case['password']) # 引入 case['user'] 即是 test 引入 case['password'] 即是 123456 由於我們有三組資料,則會執行三次 # 3.斷言 self.assertEqual(res, eval(case['check'])) if __name__ == '__main__': unittest.main()




測試類程式碼: 檔名 :class_2021_11_15



def login_check(username=None, password=None): if username != None and password != None: if username == "test" and password == "123456": return {"code": 0, 'msg': "登入成功"} else: return {"code": 1, 'msg': "賬號或密碼不正確"} else: return {"code": 1, "msg": "所有資料不能為空"}

測試檔案:login_cases.xlsx

表名:login