1. モックとは何ですか?
モック テストは、仮想オブジェクトを使用して、テスト プロセス中に構築または取得するのが容易ではない一部のオブジェクトのテスト方法を作成するテスト方法です。
2. モックの役割
特に、開発プロセスの上流および下流の未完成のプロセスにより、現時点ではテストが不可能であり、一部の特定のオブジェクトはテストのために仮想化する必要があります。
Unittest は Python に組み込まれた単体テスト ライブラリです。インターフェイス テストを行うとき、開発されたインターフェイスが開発されていない場合、インターフェイスの共同デバッグをテストしたい場合、待つことはできません。この時点では、 Unittest.mock を使用してインターフェイスの戻りをシミュレートし、インターフェイス テストを実行します。
3. 栗を取る
例: 1. A と B がそれぞれ開発した、ログインと個人情報の取得という 2 つの新しいインターフェイスを追加します。2. A さんはログイン インターフェースがまだ開発されておらず、B さんは個人情報を取得するためのインターフェースが開発されています。3. 既知のログイン インターフェイスは、ログイン成功、ログイン失敗、ログイン異常の 3 つの状態を返します。
シーンのソースコード: case.py
インターフェイス自動テストを学習したい場合は、ここで一連のビデオをお勧めします。このビデオは、ステーション B のネットワーク全体でナンバー 1 のインターフェイス自動テスト チュートリアルであると言えます。ユーザーが 1,000 人に達し、収集して使用するメモがあります。各種マスターの技術交流: 798478386
# -*-coding:utf-8 -*-
def login():
# 登录接口,尚未开发完成
# 登录成功返回:{"result": "success", "message": "登录成功"}
# 登录失败返回:{"result": "fail", "message":"账号或密码错误"}
# 登录异常返回:{"code": "404", "message": "找不到页面"}
# message返回失败原因
pass
def get_user_info():
# 根据登录的结果success or fail,判断跳转到对应页面
result = login()
print(result)
try:
if result["result"] == "success":
return "登录成功"
elif result["result"] == "fail":
return "登录失败"
else:
return "未知失败"
except:
return "服务端异常"
単体テストケースの設計:
# -*-coding:utf-8 -*-
from unittest import mock
import unittest
import case
class TestLogin(unittest.TestCase):
# 单元测试用例
def test_login_success(self):
# 测试登录成功场景
# mock一个支付成功的数据
case.login = mock.Mock(return_value={"result": "success", "message": "登录成功"})
# 根据支付结果测试页面跳转
statues = case.get_user_info()
self.assertEqual(statues, "登录成功")
def test_login_fail(self):
# 测试登录失败场景
# mock一个登录失败的数据
case.login = mock.Mock(return_value={"result": "fail", "message": "账号或密码错误"})
# 根据登录结果测试页面跳转
statues = case.get_user_info()
self.assertEqual(statues, "登录失败")
def test_login_fail2(self):
# 测试登录失败场景
# mock一个登录失败的数据
case.login = mock.Mock(return_value={"result": "", "message": "账号或者密码为空"})
# 根据登录结果测试页面跳转
statues = case.get_user_info()
self.assertEqual(statues, "未知失败")
def test_login_error(self):
# 测试登录异常场景
# mock一个登录异常的数据
case.login = mock.Mock(return_value={"code": "404", "message": "找不到页面"})
# 根据登录结果测试页面跳转
statues = case.get_user_info()
self.assertEqual(statues, "服务端异常")
if __name__ == "__main__":
unittest.main()
Unittest 単体テスト ケースを実行します。