ホームページ  >  記事  >  バックエンド開発  >  Python 単体テストと単体テスト フレームワークの使用法の分析例

Python 単体テストと単体テスト フレームワークの使用法の分析例

coldplay.xixi
coldplay.xixi転載
2020-07-09 17:26:272644ブラウズ

Python 単体テストと単体テスト フレームワークの使用法の分析例

質問例ではログイン モジュールを使用しています。コードは次のとおりです。

def login_check(username,password):

  ''' 登录校验的函数
  :param username:账号
  :param password: 密码
  :return: '''

  if 6<=len(password)<=18:
    if username==&#39;admin&#39; and password==&#39;123456&#39;:
      return {&#39;code&#39;:0,&#39;msg&#39;:&#39;登录成功&#39;}
    else:
      return {&#39;code&#39;:1,&#39;msg&#39;:&#39;账号密码不正确&#39;}

  else:
    return {&#39;code&#39;:1,&#39;msg&#39;:&#39;密码长度在6-18之间&#39;}

単体テストとは:

単体テスト (単体テスト) は、ソフトウェア内のテスト可能な最小単位の検査と検証を指します
単体テストの実行方法:

最初にテスト ケースを作成する必要があります。およびテスト ケースの主な要素 (番号、タイトル、前提条件、操作手順、期待される結果、実際の結果)

単体テスト フレームワークの中核となる 4 つの概念

1.TestCase: テストケース インスタンスはテスト ケースです。

2.TestSuite: 複数のテスト ケースがまとめられています

3.TextTestRunner: テスト ケースの実行に使用されます

4.fifixture: テスト ケース環境のセットアップと破棄、テスト前環境の構築(setUp)、テストコードの実行(run)、テスト後の環境の復元
(tearDown)

ログインテストケースのタイトルは次のとおりです。

1. ユーザー名とパスワードは正しいです

2. ユーザー名が存在しません

3. パスワードは 6 文字未満です

4. パスワードは 18 ビットより大きいです

5. ユーザー名は空であり、テスト ケースを実行します

import unittest      #引用单元测试模块
from day8.登录测试代码 import login_check  #将登陆模块代码引入
class Login_test(unittest.TestCase):
  def setUp(self): 
    print("执行用例前都会执行这个方法,类似前置条件")
  def tearDown(self):
    print("用例执行完后 都会执行该方法")
  def test_login_success(self):  #登录成功用例
    result=login_check(&#39;admin&#39;,&#39;123456&#39;)  #这个是实际结果
     expect=&#39;登录成功&#39;          #这个是预期结果
     
    self.assertEqual(result[&#39;msg&#39;],expect)  #将实际结果和预期结果做比较,输出完全相同则通过 输出结果是OK

  def test_username_nonentity(self):   #用户名不存在用例
    result=login_check(&#39;admininin&#39;,&#39;111222333&#39;)
    expect=&#39;用户名不存在&#39;
    self.assertEqual(expect,result[&#39;msg&#39;])  #反之,如果不通过输出结果如下图

注:

def メソッドはテスト ケースです。

メソッド名はユースケースのタイトルであり、ユースケースのメソッド名はテキストで始まる必要があります__

関連学習の推奨事項: Python ビデオ チュートリアル

#

以上がPython 単体テストと単体テスト フレームワークの使用法の分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjb51.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。