1. 程式人生 > >unittest--python單元測試模組(一)

unittest--python單元測試模組(一)

unittest是python中的單元測試模組,類似於java中的junit包,下面就簡單介紹一下這個模組的使用方法

首先定義一個計算器類:calculator.py,其中有一個加法方法add

class Calculator:
    def __init__(self, a, b):
        self.a = int(a)
        self.b = int(b)
    
    def add(self):
        return self.a + self.b

接下來我們編寫另外一個檔案(單元測試程式碼與被測試程式碼分離開):testadd.py

from calculator import Calculator
import unittest


class TestAdd(unittest.TestCase):
    def setUp(self):
        print "test case start"

    def tearDown(self):
        print "test case end"

    def test_add(self):
        s = Calculator(1, 2)
        self.assertEqual(s.add(), 3)

    def test_add2(self):
        s = Calculator(10, 20)
        self.assertEqual(s.add(), 30)


if __name__ == '__main__':
    unittest.main()

執行上述檔案就會自動執行TestAdd類中的test_add和test_add2方法,在Pycharm中執行的結果如下:

可以看到test case start和test case end分別被列印了兩次,這是由於在每個測試用例執行前,都會呼叫一次setUp方法用於初始化測試環境以及前置工作,每次測試用例執行後,自動呼叫tearDown方法恢復測試環境以及其他垃圾回收等工作。在本例中,在執行test_add和test_add2前後分別執行了這兩個方法,所以會有上圖所示的結果。

Pycharm自動識別出這是一個單元測試的程式,結果中顯示OK,ALL 2 tests passed,表示有兩個測試用例,且都通過。如果有不通過的測試用例,會有紅色展示。

相關推薦

unittest--python單元測試模組

unittest是python中的單元測試模組,類似於java中的junit包,下面就簡單介紹一下這個模組的使用方法 首先定義一個計算器類:calculator.py,其中有一個加法方法add class Calculator: def __init__(self

Python 單元測試框架系列:聊聊 Python單元測試框架unittest

作者:HelloGitHub-Prodesire HelloGitHub 的《講解開源專案》系列,專案地址:https://github.com/HelloGitHub-Team/Article 前言 說到 Python 的單元測試框架,想必接觸過 Python 的朋友腦袋裡第一個想到的就是

談談單元測試:為什麼要進行煩人的單元測試

前言 最近,在網上看到過一個調查,調查的內容是“程式設計師在專案開發中編寫單元測試的情況”。當然,至於調查的結果,我想聰明的你已經可以猜到了。高達 58.3% 的比例,一般情況下不寫單元測試,只有偶爾的情況才會寫寫。16.6%

淺談單元測試單元測試的意義

單元測試是檢查一個獨立工作單元的行為。在JAVA應用程式中,獨立工作單元經常是(但不總是)一個獨立的方法。相比之下,整合測試和驗收測試檢查的是各種元件如何互動。一個工作單元就是一項任務,不直接依賴於其

單元測試整理——單元測試是什麼,有什麼好處

單元測試是什麼 單元測試是開發者編寫的一小段程式碼,用於檢驗被測程式碼的一個很小的、很明確的功能是否正確,通常而言,一個單元測試是用於判斷某個特定條件(或者場景)下某個特定函式的行為1。 單元測試的好處 1,單元測試不但會使你的工作完成得更輕鬆。而且會

JustMock .NET單元測試利器

1.什麼是Mock? Mock一詞是指模仿或者效仿,用於建立例項和靜態模擬、安排和驗證行為。在軟體開發中提及"mock",通常理解為模擬物件。模擬物件的概念就是我們想要建立一個可以替代實際物件的物件,

介面測試基礎——第6篇unittest模組問題解決

1.:NameError: name 'reload' is not defined 問題   對於 Python 2.X: import sys reload(sys) sys.setdefaultencoding("utf-8")   對於 <

Python自動化學習筆記——介面測試基礎

1.1 介面基礎知識  1.1.1    Get&post請求 GET和POST請求:       GET提交的資料會放在URL之後,以?分割URL和傳輸資料,引數之間以&相連,如EditPosts.aspx?name

python標準庫常用模組-----------------------------time模組詳解及相關演示程式碼

要想了解time模組,我們需要首先了解一下時間的三種表現形式: 1.時間戳:當前距離1970年的秒數 2.格式化的字串:即2018年9月11日的這種表現形式 3.struct_time:元組時間,以元組的形式顯示時間,一共有九個元素 下面來介紹一下它具體的方法及示例程

python 正則表示式 re模組match、search、findall、finditer 使用demo

''' 正則表示式的功能全部在re模組上實現 1)match函式:嘗試從字串的起始位置匹配一個模式,如果不是從起始位置匹配成功 也返回None def match(pattern, string, flags=0): patter:匹配的正則表示式 string:要匹配的字串 flags:標誌位,用

python學習—Day46—Queue模組

#@File :queue_1.py from threading import Thread import time from multiprocessing import Queue class Proceduer(Thread): def __init__(self, queue): super(Pr

python訪問excel基本用法:openpyxl模組

準備一個excel檔案,這裡是:e\t.xlsx,放檔案裡隨便寫幾條資料。 注意:副檔名必須是xlsx(excel 2007及以上版本的),因為openpyxl模組只能處理xlsx檔案。 一、安裝op

python——Web服務開發Flask模組

flask的誕生於2010年的愚人節,本來它只是作者無意間寫的一個小玩具,沒想到它卻悄悄流行起來了。漫長的8年時間,flask一直沒有釋出一個嚴肅的正式版本,但是卻不能阻擋它成為即將被微軟收購的亞洲最大

聊聊 Python單元測試框架:nose 和它的繼任者 nose2

作者:HelloGitHub-Prodesire HelloGitHub 的《講解開源專案》系列,專案地址:https://github.com/HelloGitHub-Team/Article 一、nose nose 是一個第三方單元測試框架,它完全相容 unittest,並且號稱是一個更好

python測試開發棧】python記憶體管理機制—引用計數

什麼是記憶體 在開始進入正題之前,我們先來回憶下,計算機基礎原理的知識,為什麼需要記憶體。我們都知道計算機的CPU相當於人類的大腦,其運算速度非常的快,而我們平時寫的資料,比如:文件、程式碼等都是儲存在磁碟上的。磁碟的存取速度完全不能匹配cpu的運算速度,因此就需要一箇中間層來適配兩者的不對等,記憶體由此而來

python初步——基礎總結

python 自動化運維一. 第一個HelloWorld 1. 在linux 執行 (python2.7)[[email protected]/* */ ~]# vim test.py #!/usr/bin/env python

python全棧測試題

span hello sdi 執行 python腳本 pan 數字 ice 登錄 1、執行Python腳本的兩種方式 如果想要永久保存代碼,就要用文件的方式 如果想要調試代碼,就要用交互式的方式即終端命令下和python環境中 2、Pyhton單行註釋和多行註釋分別用什

python進階學習

分享 target for buffer yun lena hello pri true 同樣是《python基礎教程(第二版)》的內容,只是後面內容學起來,相比前面會比較有趣,也更加實用,所以,將“基礎”改為“進階”。 python 電子書分享地址:http://yu

Python開發MapReduce系列WordCount Demo

logs 3-9 line counter ota python開發 home num brush  原創,轉發請註明出處。   MapReduce是hadoop這只大象的核心,Hadoop 中,數據處理核心就是 MapReduce 程序設計模型。一個Map/Reduc

python進階學習--多線程編程

不用 才會 睡眠 關鍵字參數 war 信息 target 函數傳遞 消息隊列 1. 多線程 概念:簡單地說操作系統可以同時執行多個不用程序。例如:一邊用瀏覽器上網,一邊在聽音樂,一邊在用筆記軟件記筆記。 並發:指的是任務數多余cpu核數,通過操作系統的各種任務調度算