搜尋
首頁頭條今日分享:程式碼整潔之道- 單元測試

從開發的角度來講,先把變數、函數依照一定的命名、格式組織好,接下來,開始寫程式碼,在業界,很多提倡測試驅動開發,接著跟大家聊一下單元測試。

TDD是測試驅動開發(Test-Driven Development)的英文簡稱,是敏捷開發中的一項核心實踐和技術,也是一種設計方法論。 TDD的原理是在開發功能程式碼之前,先編寫單元測試案例程式碼。

今日分享:程式碼整潔之道- 單元測試

1、TDD三定律

定律一 在寫不能通過的單元測試前,不可寫生產程式碼。

定律二 只可寫剛好無法通過的單元測試,不能編譯也不算不通過。

定律三 只可寫剛好足以通過目前失敗測試的生產程式碼。

測試與生產程式碼一起編寫,測試只是比生產程式碼早寫幾秒鐘。

2、保持測試整齊

測試程式碼和生產程式碼一樣重要,一樣需要保持足夠的整潔。

測試帶來一切好處。

整齊的單元測試程式碼會為你的程式碼帶來很多好處。測試越髒,程式碼最終會變得越髒。如果遺失了測試,程式碼開始腐爛。

3、整齊的測試

整齊的測試有一個十分重要的要素:可讀性。

測試程式碼要保持明確、整潔,還要有足夠的表達力。在測試中,要以盡可能少的文字表達大量內容。

測試模式:建構-操作-檢驗,

第一環節 建構測試資料

第二環節 操作測試資料

第三環節 驗證操作是否得到期望的結果。

3.1 特定領域的測試語言

使用測試的語言測試,更具可讀性。

3.2 雙重標準

測試API中的程式碼有著與生產程式碼不同的工程標準,要求應當簡單、精悍、足具表達力,但又要和生產程式碼一般有效。

4、每個測試一個斷言

有人認為每個測試函數都應該有且只有一個斷言語句。

每個測試一個概念。

更好的規則或許是每個測試函數中只測試一個概念,只做一件事情。

5、F.I.R.S.T 原則

整齊程式碼應遵循以下規則:

快速(Fast)測試應該夠快。測試應該能快速運作。

獨立(Independent)測試應相互獨立。某個測驗不應為下一個測驗設定條件。

可重複(Repeatable)測試應在任何環境下重複通過。

自足驗證(Self-Validating)測試應該有布林值輸出。無論是失敗還是通過,應直接了當得出結論,而不應該通過查看日誌來確認測試是否通過。

及時(Timely)測試應及時編寫。單元測試應該恰好在使其通過的生產程式碼之前編寫。

6、小結

測試與程式碼同等重要,它保證和增強了生產程式碼的可擴展性、可維護性和可重複使用性。保持測試的整潔,讓測試具有表達力並短小精悍。發明作為特定領域語言的測試API,幫助自己編寫測試。

在實際的開發中,很多團隊,由於各種外部、內部的因素,工期緊、時間少、任務重等諸多因素,很多事沒有TDD、沒有單元測試,即使如此,我們還是要堅持這個原則,慢慢往單元測試這個目標靠近...

你可能喜歡:

金三銀四求職季:程序員面試技巧履歷表篇

如何靠自學成為優秀的全端工程師?

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Yii框架中的单元测试:确保代码质量Yii框架中的单元测试:确保代码质量Jun 21, 2023 am 10:57 AM

随着软件开发的日益复杂化,确保代码质量变得越来越重要。在Yii框架中,单元测试是一种非常强大的工具,可以确保代码的正确性和稳定性。在本文中,我们将深入探讨Yii框架中的单元测试,并介绍如何使用Yii框架进行单元测试。什么是单元测试?单元测试是一种软件测试方法,通常用于测试一个模块、函数或方法的正确性。单元测试通常由开发人员编写,旨在确保代码的正确性和稳定性。

Go语言中的单元测试与集成测试Go语言中的单元测试与集成测试Jun 02, 2023 am 10:40 AM

随着软件开发变得越来越复杂,测试也变得越来越重要。在实际开发中,有两种常见的测试方法:单元测试和集成测试。在这篇文章中,我们将聚焦于Go语言中的这两种测试方法。一、单元测试单元测试是一个独立的测试单元,用于测试程序中的逻辑单元,比如函数、方法、类等。这些测试通常由开发人员自己编写,用于验证程序的各个单元是否按照预定的规则工作。在Go语言中,我们可以使用标准库

用ThinkPHP6实现单元测试用ThinkPHP6实现单元测试Jun 20, 2023 pm 11:52 PM

ThinkPHP是一款非常流行的PHP开发框架,它具有开发效率高、学习成本低、灵活性强等优点。对于一个优秀的开发团队来说,单元测试是保证代码质量的一种必要手段。本篇文章将介绍如何使用ThinkPHP6框架进行单元测试,以提高项目的稳定性和开发效率。一、什么是单元测试?单元测试是指对软件中的最小可测试单元进行检查和验证的一种测试方法。在PHP开发中,单元测试可

php如何使用PHPUnit和Mockery进行单元测试?php如何使用PHPUnit和Mockery进行单元测试?May 31, 2023 pm 04:10 PM

在PHP项目开发中,单元测试是一项很重要的任务。PHPUnit和Mockery是两个相当流行的PHP单元测试框架,其中PHPUnit是一个被广泛使用的单元测试工具,而Mockery则是一个专注于提供统一而简洁的API以创建和管理对象Mock的对象模拟工具。通过使用PHPUnit和Mockery,开发人员可以快速高效地进行单元测试,以确保代码库的正确性和稳定性

如何进行PHP单元测试?如何进行PHP单元测试?May 12, 2023 am 08:28 AM

在Web开发中,PHP是一种流行的语言,因此对于任何人来说,对PHP进行单元测试是一个必须掌握的技能。本文将介绍什么是PHP单元测试以及如何进行PHP单元测试。一、什么是PHP单元测试?PHP单元测试是指测试一个PHP应用程序的最小组成部分,也称为代码单元。这些代码单元可以是方法、类或一组类。PHP单元测试旨在确认每个代码单元都能按预期工作,并且能否正确地与

Go语言中的单元测试和集成测试:最佳实践Go语言中的单元测试和集成测试:最佳实践Jun 17, 2023 pm 04:15 PM

在软件开发中,测试是一个极其重要的环节。测试不仅可以帮助开发人员找出代码中的错误,还可以提高代码的质量和可维护性。在Go语言中,测试是使用GoTest工具完成的。GoTest支持单元测试和集成测试两种测试方式。在本文中,我们将介绍Go语言中单元测试和集成测试的最佳实践。单元测试单元测试是指对程序中的最小可测试单元进行测试。在Go语言中,一个函数或方法就是

如何使用PHPUnit进行PHP单元测试如何使用PHPUnit进行PHP单元测试May 12, 2023 am 08:13 AM

随着软件开发行业的发展,测试逐渐成为了不可或缺的一部分。而单元测试作为软件测试中最基础的一环,不仅能够提高代码质量,还能够加快开发者开发和维护代码的速度。在PHP领域,PHPUnit是一个非常流行的单元测试框架,它提供了各种功能来帮助我们编写高质量的测试用例。在本文中,我们将介绍如何使用PHPUnit进行PHP单元测试。安装PHPUnit在使用PHPUnit

在ThinkPHP6中实现单元测试的最佳实践在ThinkPHP6中实现单元测试的最佳实践Jun 21, 2023 am 10:31 AM

在ThinkPHP6中实现单元测试的最佳实践随着现代软件开发中的快速迭代和高效交付的要求,单元测试已经成为一种不可或缺的自动化测试方法。在PHP语言中,单元测试框架的流行使得开发者不必再手动测试每个函数和方法,而是可以编写测试用例自动化地检查代码的正确性。在ThinkPHP6中,PHPUnit单元测试框架被默认集成进了框架内部,并且具有相当完备的功能和优秀的

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。