單元測試中的 AAA 規則

2021-10-16 22:48:55 字數 985 閱讀 9774

在單元測試中通常包含3大部分的**,他們是設定初始條件的**,執行業務邏輯的**,以及驗證執行結果是否正確的斷言**。為了提高這些**的可讀性,讓**顯得清晰整潔,我們建議程式設計師按照 aaa 規則來寫單元測試的**。

aaa 分別**了單元測試中的3大部分**,即 arrange, act, assert。比如我們有一段**,它的作用是反轉輸入的字串,我們可以使用下面的**來測試:

[

testmethod

]void

string_should_be_reversed()

上面的**指展示了乙個輸入條件的測試,如果是多個輸入條件呢?我建議把輸入條件放在一起,act **也放在一起,assert 也放在一起,這樣我們就可以顯示出我們的**不會有先後順序的要求,還記得 first 原則中的 repeatable 原則嗎?

對比下面的方案1和方案2,顯然方案1更符合 repeatable 原則,因為通過閱讀**,我們能看到 r1 和 r2 的為止在一起,我們再加上 r3.

方案 2

[

testmethod

]void

string_should_be_reversed()

方案 2

[

testmethod

]void

string_should_be_reversed()

結論

我們討論了單元測試中 aaa 規則 (aaa pattern)。正確使用 aaa 規則可以使我們的單元測試**更清晰整潔。我們還介紹了如何應用 aaa 規則來讓我們的**符合 first 原則中的 repeatable 要求。

參考單元測試中的 first 原則

軟體設計原則之 solid principle

編寫**中的 dry 原則

單元測試 單元測試文章收藏

前言 前段時間公司計畫做自動化測試,自己也打算圍繞幾個點做相關調研,現在想想呢?其實對自動化測試的概念都還不是十分清晰,當時主要還是圍繞 單元測試 向qa小夥伴學習了一段時間,現由於公司重組,學習中斷,這裡簡單記錄一些單元測試好文,留待後續參考.什麼叫自動化測試?自動化測試覆蓋率?覆蓋率如何做到的?...

單元測試之Django單元測試

每個應用,自帶tests.py 整合在django的專案檔案裡,更多是開發人員寫django自動的測試執行 3.1 前後置方法執行特點 django.test.testcase類主要由前 後置處理方法和test開頭的方法組成 特點 繼承於django.test.testcase 測試用例都是test...

Python中的單元測試

今晚試了一下python自帶的單元測試,主要是參考了python單元測試框架 的有關資料,折騰了乙個小時左右,總算在eric 4通過的幾個簡單的單元測試。在這裡將所得的相關知識記錄下來,方便將來查詢。python自帶的單元測試模組是unittest,從2.1以後為標準庫的一部分 1 測試模組impo...