偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

功能強(qiáng)大的Python 測試框架說明

開發(fā) 后端
Python的Virtual Machine是一種更高級的Virtual Machine。這里的高級并不是通常意義上的高級,不是說Python的Virtual Machine比Java或.NET的功能更強(qiáng)大

我對 FP 的所有描述都是使用Python 測試框架做到的。但最重要的特性 -- 可能也是具體情況中最有用的特性 -- 是它消除了副作用(或者至少對一些特殊領(lǐng)域,例如單一體,有一些牽制作用)。

絕大部分程序錯(cuò)誤 -- 和促使程序員求助于調(diào)試來解決的問題 -- 之所以會發(fā)生,是因?yàn)樵诔绦驁?zhí)行過程期間,變量包含了意外的值。函數(shù)程序只不過根本就不為變量分配值,從而避免了這一特殊問題。

讓我們看一段相當(dāng)普通的命令代碼。它的目的是打印出乘積大于 25 的幾對數(shù)字的列表。組成各對的數(shù)字本身是從另外兩個(gè)列表中挑選出的。這種操作與程序員在他們程序段中實(shí)際執(zhí)行的操作差不多。實(shí)現(xiàn)這一目的的命令方法如下:


這個(gè)項(xiàng)目太小,以至于沒有什么可能出錯(cuò)。但我們的目的可能嵌在要同時(shí)實(shí)現(xiàn)許多其它目的的代碼中。用 "more stuff" 注釋的那些部分是副作用可能導(dǎo)致錯(cuò)誤發(fā)生的地方。在這些地方中的任何一處,變量 xs、ys、bigmuls、x、 y 有可能獲得假設(shè)節(jié)略代碼中的意外值。而且,在執(zhí)行完這一段代碼后,所有變量都可能具有稍后代碼可能需要也可能不需要的一些值。

很明顯,可以使用函數(shù)/實(shí)例形式的封裝和有關(guān)作用域的考慮來防止出現(xiàn)這種類型的錯(cuò)誤。而且,您總是可以在執(zhí)行完變量后 del 它們。但在實(shí)際中,這些指出類型的錯(cuò)誤非常普遍。

對于 Python 測試框架,您會發(fā)現(xiàn) Zope 社區(qū)有一些有意思的現(xiàn)象。Zope 社區(qū)并不為解決每個(gè)問題構(gòu)建大型工具,而是構(gòu)建小型的功能有限的工具,這些工具能夠連接在一起。目前,zope.testing 模塊本身實(shí)際上根本沒有提供檢測測試的機(jī)制!

相反,zope.testing 讓程序員自己尋找每個(gè)模塊中需要運(yùn)行的測試并把它們集中在一個(gè)列表中。它在每個(gè)測試模塊中只尋找一個(gè)東西:test_suite() 函數(shù),這個(gè)函數(shù)應(yīng)該返回標(biāo)準(zhǔn) unittest.TestSuite 類的實(shí)例,其中包含模塊定義的測試。

使用 zope.testing 的一些程序員在 test_suite() 函數(shù)中手工地創(chuàng)建和維護(hù)測試列表。其他程序員通過編寫定制代碼發(fā)現(xiàn)已經(jīng)定義的可用測試。但是,最有意思的方法是使用另一個(gè) Zope 包 z3c.testsetup,它能夠像其他現(xiàn)代 Python 測試框架一樣自動地發(fā)現(xiàn)包中的測試。

這一現(xiàn)象再次說明 Zope 程序員傾向于編寫小型代碼塊,然后使用它們構(gòu)建框架,而不是編寫大型的全面解決方案。z3c.testsetup 包不包含可以選擇測試的命令行界面,也不包含可以顯示測試結(jié)果的輸出模塊;它完全依靠 zope.testing 實(shí)現(xiàn)這些功能。

實(shí)際上,z3c.testsetup 用戶一般不使用 zope.testing 的測試模塊發(fā)現(xiàn)功能。相反,他們繞開 zope.testing 的算法,按照它的默認(rèn)行為只尋找名為 test.py 的模塊,然后在整個(gè)源代碼樹中只提供一個(gè)采用此名稱的模塊。在最簡單的情況下,他們的 test.py 像下面這樣:

【編輯推薦】

  1. 有關(guān)Python系統(tǒng)文件進(jìn)行介紹指導(dǎo)
  2. 如何正確的使用Python函數(shù)
  3. 對Python 構(gòu)建工具進(jìn)行詳細(xì)介紹分析
  4. PythonAndroid淺析Python優(yōu)勢所在
  5. 如何使用Python模塊解析配置文件?
責(zé)任編輯:chenqingxiang 來源: 51cto
相關(guān)推薦

2021-10-24 08:15:44

Web身份認(rèn)證測試框架

2022-10-10 10:14:38

Python繪圖庫

2010-03-05 09:19:54

Android系統(tǒng)

2013-01-23 11:30:39

JSVirtualKeybjQuery

2009-07-07 08:46:11

微軟Windows 7新功能

2021-09-14 15:01:31

Pstf安全工具指紋框架

2024-05-24 08:34:16

2011-04-15 09:27:09

Windows PhoWindows phoMango

2012-01-10 16:23:12

兄弟傳真機(jī)

2022-06-23 10:17:00

Git技術(shù)Linux

2009-12-02 13:46:10

PHP模板引擎

2022-03-20 18:12:03

Shotcut開源視頻編輯器

2021-07-09 10:14:05

IP工具命令

2023-08-30 08:24:34

2023-08-08 07:35:54

2015-11-03 10:40:25

Sysdig命令工具

2024-10-21 13:05:40

2009-12-01 16:44:06

PHP編輯器

2010-03-10 14:42:07

三層交換機(jī)

2023-12-19 09:00:03

OCR軟件開源Ocrad
點(diǎn)贊
收藏

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