Python 單元測試

2021-06-10 06:23:27 字數 1461 閱讀 5397

一、

假設我們編寫了一段程式,主要功能是完成阿拉伯數字和羅馬數字之間的轉換

在羅馬數字中,利用7個字母進行重複或者組合來表達各式各樣的數字

i = 1   v = 5    x = 10    l = 50     c = 100     d = 500     m = 1000

還有一些關於構造羅馬數字的規則。

此程式的框架如下:

其中,class romanerror是定義自己的python異常  是乙個類

outofrangeerror 和 notintegererror 異常將會被用於toroman 以標示不同型別的無效輸入。

invalidromannumeralerror 將被最終用於 fromroman 以標示無效輸入

toroman函式:將阿拉伯數字轉換成羅馬數字 

fromroman函式:將羅馬數字轉換成阿拉伯數字

二、分析此程式的功能需求:

1、toroman 應該能返回 應該能返回 應該能返回 應該能返回 應該能返回 1 到 3999 中任意數的羅馬字表示。 

2、toroman 在遇到  1 到 3999 之外的數字時應該失敗。

3、toroman 在遇到非整數時應該失敗。

4、fromroman 應該能將給定的有效羅馬數字表示轉換為阿拉伯。

5、fromroman 在遇到無效羅馬數字表示時應該失敗。

6、將乙個數轉換為羅馬字表示,再回阿拉伯後應該和最初的數相同

7、toroman 返回的羅馬數字應該使用大寫母。

8、fromroman 應該只接受大寫羅馬數字 

python 有乙個單元測試框架稱作 unittest 模組

unittest 模組中的 testcase 類提供了assertraises 方法,它接受這幾個引數: 預期的異常、測試函式,以及傳遞給引數

特別注意這裡的操作:不是直接呼叫toroman再手工檢視是否引發特定異常,assertraises為我們封裝了這些。

我們只需要把異常(roman.outofrangeerror)、函式(toroman)、和引數(4000)傳遞給assertraises

它會呼叫toroman檢視是否引發 roman.outofrangeerror異常

python 單元測試

assertequal a,b assertnotequal a,b 斷言值是否相等 assertis a,b assertisnot a,b 斷言是否同一物件 記憶體位址一樣 assertlistequal list1,list2 assertitemnotequal list1,list2 斷言...

Python單元測試

本文章整理自 使用python3.6編寫乙個單元測試demo,例如 對學生student類編寫乙個簡單的單元測試。1 編寫student類 usr bin env python3 coding utf 8 class student object def init self,name,score s...

Python單元測試

在python的圈子裡常流行一句話 動態一時爽,重構火葬場 我們知道python寫起來很方便,但在重構或者對某部分 修改時,可能會造成 牽一髮而動全身 所以對於python專案,特別是大型專案來說單元測試來保證 質量是非常有必要的。單元測試 unit testing 1.針對程式模組進行正確性檢驗 ...