自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python測(cè)試 | 在python中創(chuàng)建單元測(cè)試

開(kāi)發(fā) 前端
嘗試測(cè)試可能會(huì)給代碼帶來(lái)額外的健壯性。它還可以改變您進(jìn)行開(kāi)發(fā)的方式。擁有測(cè)試思維可以確保在生產(chǎn)中有更少的錯(cuò)誤,以及在開(kāi)發(fā)過(guò)程中更少的重復(fù)性手工測(cè)試。

作為開(kāi)發(fā)人員或程序員, 只要編寫(xiě)代碼,通常就會(huì)忽略一件事:測(cè)試。測(cè)試是開(kāi)發(fā)的一部分,您應(yīng)該嚴(yán)格測(cè)試應(yīng)用程序,以確保它們滿足必需的功能。

讓我們先從為什么要做測(cè)試開(kāi)始:

1、減少手動(dòng)測(cè)試的需求

因?yàn)闇y(cè)試用例是預(yù)先編寫(xiě)的,所以沒(méi)有真正的理由再進(jìn)行手動(dòng)測(cè)試。大多數(shù)時(shí)候,特別是對(duì)于大型應(yīng)用程序,您必須在軟件中運(yùn)行許多階段,以測(cè)試某個(gè)特性是否有效。這可以通過(guò)測(cè)試來(lái)避免。想象一下每次運(yùn)行應(yīng)用程序時(shí)必須使用特定的輸入。通過(guò)測(cè)試,這將在每次運(yùn)行時(shí)自動(dòng)輸入。

2、允許更好的代碼結(jié)構(gòu)

在開(kāi)發(fā)之前創(chuàng)建測(cè)試用例是最佳實(shí)踐。這迫使您在開(kāi)始開(kāi)發(fā)之前將系統(tǒng)作為一個(gè)整體來(lái)考慮。

3、允許在長(zhǎng)期運(yùn)行中更快的測(cè)試

在編碼時(shí),函數(shù)的實(shí)現(xiàn)可以改變,但是輸出保持不變。您可以簡(jiǎn)單地實(shí)現(xiàn)可以一次運(yùn)行多個(gè)測(cè)試用例的特定測(cè)試用例,而不是在函數(shù)的實(shí)現(xiàn)更改時(shí)手動(dòng)測(cè)試它。

開(kāi)始

我們將專(zhuān)注于一種特定類(lèi)型的測(cè)試,即單元測(cè)試。這種特定類(lèi)型的測(cè)試用于測(cè)試小的代碼單元,比如函數(shù)或類(lèi)。

為了創(chuàng)建單元測(cè)試,我們將使用python標(biāo)準(zhǔn)庫(kù)unittest。通過(guò)創(chuàng)建一個(gè)包含所有測(cè)試用例的類(lèi),這種創(chuàng)建測(cè)試用例的方法使用OOP(面向?qū)ο缶幊?。這將允許我們一次運(yùn)行類(lèi)中的所有測(cè)試用例。

注意:您可以使用您熟悉的任何IDE或文本編輯器(可以使用默認(rèn)的python IDE)。為此,我將演示使用帶有python擴(kuò)展的Visual Studio代碼。

我們將首先導(dǎo)入我們的單元測(cè)試庫(kù):

import unittest

現(xiàn)在做我們的類(lèi)聲明:

class TestingClass(unittest.TestCase):

注意(unittest.TestCase)在python中是繼承。給類(lèi)提供功能。

在類(lèi)中添加第一個(gè)函數(shù):

圖片

self.assertEqual 是由先前繼承的類(lèi)(unittest.TestCase)提供的方法。此方法測(cè)試兩個(gè)變量是否具有相同的值。

添加我們的測(cè)試運(yùn)行器。這就是讓我們的單元測(cè)試運(yùn)行的原因:

unittest.main()

這是完成的代碼應(yīng)該看起來(lái)像:

圖片

上面的代碼演示了測(cè)試9 + 1是否等于11。如果你懂基礎(chǔ)數(shù)學(xué),你應(yīng)該知道9+1 = 10。因此,這個(gè)測(cè)試用例將失敗。

輸出:

圖片

你應(yīng)該已經(jīng)猜到了。失敗!

解決辦法很簡(jiǎn)單。修改代碼為:

test_var = 9 + 2

圖片

輸出:

圖片

測(cè)試外部功能

對(duì)于在函數(shù)外部進(jìn)行測(cè)試,前面的示例可能不現(xiàn)實(shí)。讓我們將test_var值替換為來(lái)自一個(gè)函數(shù)的值。我們將在文件的頂部添加一個(gè)函數(shù)聲明。

圖片

這個(gè)函數(shù)將兩個(gè)數(shù)相加。用函數(shù)調(diào)用add(9,2)替換9 + 2,然后運(yùn)行代碼。

圖片

到目前為止,我們只實(shí)現(xiàn)了一個(gè)測(cè)試用例。TestingClass中的每個(gè)函數(shù)/方法(在本例中兩者是相同的)代表一個(gè)測(cè)試用例。

讓我們添加另一個(gè)測(cè)試用例test_multiple_num_addition。

圖片

注意:所有創(chuàng)建的測(cè)試用例的名稱(chēng)之前都應(yīng)該加上單詞“test”,否則測(cè)試運(yùn)行程序?qū)o(wú)法識(shí)別它。

你的代碼應(yīng)該如下所示:

圖片

運(yùn)行:

圖片

這顯然會(huì)失敗,因?yàn)楹瘮?shù)參數(shù)只接受兩個(gè)參數(shù)。但如果我們真的想加更多的數(shù)字呢?

這可以通過(guò)對(duì)add函數(shù)做一個(gè)改變來(lái)解決:

圖片

注意values參數(shù)左邊的星號(hào)(*)。這允許您輸入多個(gè)參數(shù),并允許將值存儲(chǔ)為元組。

執(zhí)行前的代碼:

圖片

執(zhí)行:

圖片

執(zhí)行成功!

在函數(shù)參數(shù)的變量前加星號(hào)稱(chēng)為非關(guān)鍵字參數(shù)。

總結(jié)

嘗試測(cè)試可能會(huì)給代碼帶來(lái)額外的健壯性。它還可以改變您進(jìn)行開(kāi)發(fā)的方式。擁有測(cè)試思維可以確保在生產(chǎn)中有更少的錯(cuò)誤,以及在開(kāi)發(fā)過(guò)程中更少的重復(fù)性手工測(cè)試。

*原文鏈接:https://medium.com/swlh/python-testing-a8156d022eef

責(zé)任編輯:武曉燕 來(lái)源: 新鈦云服
相關(guān)推薦

2017-01-14 23:42:49

單元測(cè)試框架軟件測(cè)試

2010-03-04 15:40:14

Python單元測(cè)試

2024-10-16 16:09:32

2021-03-28 23:03:50

Python程序員編碼

2020-08-18 08:10:02

單元測(cè)試Java

2021-09-27 13:02:05

Python技巧測(cè)試

2017-01-14 23:26:17

單元測(cè)試JUnit測(cè)試

2017-01-16 12:12:29

單元測(cè)試JUnit

2023-09-01 07:15:58

UnittestPython

2011-05-16 16:52:09

單元測(cè)試徹底測(cè)試

2009-06-23 18:19:32

單元測(cè)試Hibernate配置

2023-07-26 08:58:45

Golang單元測(cè)試

2021-03-24 09:30:02

Jupyter not單元測(cè)試代碼

2011-07-04 18:16:42

單元測(cè)試

2020-05-07 17:30:49

開(kāi)發(fā)iOS技術(shù)

2017-03-23 16:02:10

Mock技術(shù)單元測(cè)試

2021-05-05 11:38:40

TestNGPowerMock單元測(cè)試

2010-08-27 09:11:27

Python單元測(cè)試

2024-01-11 09:35:12

單元測(cè)試Python編程軟件開(kāi)發(fā)

2011-07-27 17:02:12

Xcode iPhone 單元測(cè)試
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)