溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Python單元測(cè)試與測(cè)試用例簡(jiǎn)析

發(fā)布時(shí)間:2020-08-31 14:41:21 來(lái)源:腳本之家 閱讀:109 作者:liuwei_q 欄目:開(kāi)發(fā)技術(shù)

本文實(shí)例講述了Python單元測(cè)試與測(cè)試用例。分享給大家供大家參考,具體如下:

單元測(cè)試與測(cè)試用例

簡(jiǎn)介

測(cè)試用例是一組單元測(cè)試,這些單元測(cè)試一起核實(shí)函數(shù)在各種情形下的行為都符合要求

要為函數(shù)編寫(xiě)測(cè)試用例,可先導(dǎo)入模塊 unittest 以及要測(cè)試的函數(shù),再創(chuàng)建一個(gè)繼承unittest.TestCase 的類(lèi),并編寫(xiě)一系列方法對(duì)函數(shù)行為的不同方面進(jìn)行測(cè)試

創(chuàng)建實(shí)例(對(duì)比接收到的名和姓是否符合要求)

1.先創(chuàng)建個(gè)name_function.py的文件(文件名稱(chēng)可以另?。?,接收名和姓并返回整潔的全名

def get_formatted_name(first,last,middle=''):
  '''生成整潔的姓名'''
  if middle:
    full_name=first+' '+middle+' '+last
  else:
    full_name=first+' '+last
  return full_name.title()

2.再創(chuàng)建個(gè)test_name_function.py的文件,檢查name_function.py()在給定名和姓時(shí)能否正確地工作

import unittest
from name_function import get_formatted_name
class NamesTestCase(unittest.TestCase):
  """測(cè)試name_function.py"""
  def test_first_last_name(self):
    """能夠正確處理姓名么?"""
    formatted_name = get_formatted_name('liu','wei' )
    self.assertEquals(formatted_name, 'Liu Wei')
unittest.main()

上述代碼思路:

  1. 導(dǎo)入模塊 unittest 和要測(cè)試的函數(shù) get_formatted_name()
  2. 創(chuàng)建一個(gè)名為 NamesTestCase 的類(lèi)(類(lèi)的命名可任取,但最好讓它看起來(lái)與要測(cè)試的函數(shù)相關(guān),并包含字樣Test),用于包含一系列針對(duì)get_formatted_name()的單元測(cè)試。這個(gè)類(lèi)必須繼承unittest.TestCase,這樣Python才知道如何運(yùn)行你編寫(xiě)的測(cè)試
  3. NamesTestCase只包含一個(gè)方法,我將這個(gè)方法命名為test_first_last_name(),我們運(yùn)行test_name_function.py 時(shí),所有以test_打頭的方法都將自動(dòng)運(yùn)行。在這個(gè)示例中,使用了實(shí)參‘liu'和‘wei'調(diào)用get_formatted_name(),并將結(jié)果存儲(chǔ)到變量 formatted_name
  4. assertEquals()unittest類(lèi)最有用的功能之一:一個(gè)斷言方法。斷言方法用來(lái)核實(shí)得到的結(jié)果與期望的結(jié)果一致。self.assertEquals(formatted_name, 'Liu Wei') 的意思是:將formatted_name 的值同字符串 'Liu Wei'進(jìn)行比較
  5. 代碼行unittest.main()讓Python運(yùn)行這個(gè)文件中的測(cè)試。

運(yùn)行結(jié)果如下:

----------------------------------------------------------------------
Ran 1 test in 0.000s

OK

第1句的句點(diǎn)表明有一個(gè)測(cè)試通過(guò)。接下來(lái)的一行指出Python運(yùn)行了一個(gè)測(cè)試,消耗的時(shí)間不到0.001秒。最后的OK表明該測(cè)試用例中的所有單元測(cè)試都通過(guò)了。

關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Python函數(shù)使用技巧總結(jié)》、《Python面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)與進(jìn)階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門(mén)與進(jìn)階經(jīng)典教程》

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI