日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
深度剖析Python面向?qū)ο笳Z言內(nèi)容

Python面向?qū)ο笳Z言必須執(zhí)行一些復(fù)雜的操作,比如在 Firefox 中打開網(wǎng)頁并單擊 “Continue” 按鈕,然后檢查結(jié)果。在開始實(shí)際測試(比如打開頁面并單擊按鈕)之前,測試必須先完成一些步驟。

創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的象州網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

現(xiàn)在,考慮如果一百個功能性測試都要這樣執(zhí)行測試,會怎么樣。它們都需要通過調(diào)用共同的 setup 例程運(yùn)行 Firefox。然后才能執(zhí)行自己的測試。與此相應(yīng),為了取消 setup 所做的操作,可能還有 teardown 代碼。這樣,在測試套件中就會增加兩百個額外的函數(shù)調(diào)用。每個測試函數(shù)會像下面這樣:

 
 
 
  1. # Naming a with_setup decorator  
  2.  
  3. firefox_test = with_setup(firefox_setup, firefox_teardown)  
  4.  
  5. @firefox_test  
  6. def test_index_click():  
  7.     ...  
  8.  
  9. @firefox_test  
  10. def test_index_menu():  
  11. ... 

為了消除這些重復(fù)的代碼,許多測試框架提供了一次性指定每個測試都需要運(yùn)行的 setup 和 teardown 代碼的機(jī)制。本文討論的三種框架 zope.testing、py.test 和 nose 都支持程序員編寫的 unittest.TestCase 類中的標(biāo)準(zhǔn) setUp() 和 tearDown() 例程。

但是,除此之外,Python面向?qū)ο笳Z言各個框架為共同 setup 代碼提供的特性有顯著差異。zope.testing 本身沒有為 setup 和 teardown 提供額外支持。但是前面討論過的 z3c.testsetup 擴(kuò)展會對 doctest 做一些有意思的處理。

它通過在文件中尋找 :Test-Layer: 字符串來尋找測試。doctest 中的層實(shí)際上可以指定兩個值之一。如果把 doctest 標(biāo)為屬于 unit 層,就意味著運(yùn)行它不需要任何特殊的 setup。但是,如果把它標(biāo)為屬于 functional 層,就意味著只能在調(diào)用框架 setup 函數(shù)之后運(yùn)行它。

通常情況下,:Test-Layer: functional 測試被設(shè)計為在完整地配置了 Zope Web 框架的情況下運(yùn)行。因此它們可以創(chuàng)建測試瀏覽器實(shí)例、發(fā)送請求和查看 Web 框架返回的響應(yīng)。通過代表 doctest 執(zhí)行 setup,z3c.testsetup 可以避免在每個功能性 doctest 中復(fù)制大量樣板代碼。

最后一項(xiàng)減少樣板代碼的便捷特性是,可以向 z3c.testsetup 提供一個預(yù)裝載到每個單元 doctest 的名稱空間中的變量列表。以及另一個預(yù)裝載到每個功能性 doctest 中的變量列表。這樣就不需要在每個 doctest 文件的開頭復(fù)制一組相同的 import 語句。

Python面向?qū)ο笳Z言 在默認(rèn)情況下不提供對 setup 和 teardown 的支持。它甚至不運(yùn)行標(biāo)準(zhǔn) unittest.TestCase 類的 setUp() 和 tearDown() 方法,除非打開它的 unittest 插件。nose 在支持共同測試代碼方面是最出色的。在尋找測試時,nose 跟蹤記錄找到測試的上下文。它認(rèn)為 unittest.TestCase 子類內(nèi)部的每個測試方法是這個類 “內(nèi)部的”。

因此由它的 setUp() 和 tearDown() 方法控制,它還認(rèn)為測試存在于它們的模塊、包含模塊的包以及外層所有包的 “內(nèi)部”。因此,對于多層 “同心” 容器內(nèi)的測試,nose 會在運(yùn)行測試之前運(yùn)行所有容器中的 setup 代碼,在運(yùn)行測試之后運(yùn)行所有容器中的 teardown 代碼。

最后,在 @with_setup 修飾符中指定的或作為 unittest.TestCase 子類中的方法提供的 setup 和 teardown 函數(shù)對于相關(guān)的每個函數(shù)或測試運(yùn)行一次,而在模塊級或包級向 nose 提供的 setup 和 teardown 代碼對于整個測試集只運(yùn)行一次。因此,不要認(rèn)為這樣的測試是完全互相隔離的:它們會共享在模塊或包的 setup 例程中創(chuàng)建的資源拷貝。


網(wǎng)站題目:深度剖析Python面向?qū)ο笳Z言內(nèi)容
網(wǎng)頁URL:http://www.5511xx.com/article/dhhdcsj.html