日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Python如何測試stdout輸出

瀏覽:32日期:2022-07-14 14:06:16

問題

你的程序中有個方法會輸出到標準輸出中(sys.stdout)。也就是說它會將文本打印到屏幕上面。 你想寫個測試來證明它,給定一個輸入,相應的輸出能正常顯示出來。

解決方案

使用 unittest.mock 模塊中的 patch() 函數, 使用起來非常簡單,可以為單個測試模擬 sys.stdout 然后回滾, 并且不產生大量的臨時變量或在測試用例直接暴露狀態變量。

作為一個例子,我們在 mymodule 模塊中定義如下一個函數:

# mymodule.pydef urlprint(protocol, host, domain): url = ’{}://{}.{}’.format(protocol, host, domain) print(url)

默認情況下內置的 print 函數會將輸出發送到 sys.stdout 。 為了測試輸出真的在那里,你可以使用一個替身對象來模擬它,然后使用斷言來確認結果。 使用 unittest.mock 模塊的 patch() 方法可以很方便的在測試運行的上下文中替換對象, 并且當測試完成時候自動返回它們的原有狀態。下面是對 mymodule 模塊的測試代碼:

from io import StringIOfrom unittest import TestCasefrom unittest.mock import patchimport mymoduleclass TestURLPrint(TestCase): def test_url_gets_to_stdout(self): protocol = ’http’ host = ’www’ domain = ’example.com’ expected_url = ’{}://{}.{}n’.format(protocol, host, domain) with patch(’sys.stdout’, new=StringIO()) as fake_out: mymodule.urlprint(protocol, host, domain) self.assertEqual(fake_out.getvalue(), expected_url)

討論

urlprint() 函數接受三個參數,測試方法開始會先設置每一個參數的值。 expected_url 變量被設置成包含期望的輸出的字符串。

unittest.mock.patch() 函數被用作一個上下文管理器,使用 StringIO 對象來代替 sys.stdout . fake_out 變量是在該進程中被創建的模擬對象。 在with語句中使用它可以執行各種檢查。當with語句結束時,patch 會將所有東西恢復到測試開始前的狀態。 有一點需要注意的是某些對Python的C擴展可能會忽略掉 sys.stdout 的配置而直接寫入到標準輸出中。 限于篇幅,本節不會涉及到這方面的講解,它適用于純Python代碼。 如果你真的需要在C擴展中捕獲I/O,你可以先打開一個臨時文件,然后將標準輸出重定向到該文件中。

以上就是Python如何測試stdout輸出的詳細內容,更多關于Python測試stdout輸出的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品成人自拍| 日本国产欧美| 精品国产a一区二区三区v免费| 日韩高清在线不卡| 午夜性色一区二区三区免费视频| 综合色一区二区| 日韩av一区二区在线影视| 欧美日韩一区二区三区在线电影| 国产私拍福利精品视频二区| 欧美中文高清| 亚洲精品少妇| 日韩国产欧美一区二区三区| 国产精品一区三区在线观看| 久久亚洲精品中文字幕| а√天堂中文在线资源8| 天堂а√在线最新版中文在线| 99久久精品费精品国产| 亚洲综合日本| 日韩不卡一区二区三区| 久久不见久久见中文字幕免费| 精品视频99| 亚洲午夜精品久久久久久app| 性一交一乱一区二区洋洋av| 亚洲久草在线| 国产精品亚洲综合久久| 精品亚洲二区| a日韩av网址| 午夜影院欧美| 免费视频最近日韩| 国产精品日本一区二区三区在线| 9999国产精品| 美女国产精品| 国产伦精品一区二区三区在线播放| 成人在线免费观看网站| 国产一区欧美| 日韩和欧美一区二区三区| 国产精品巨作av| 天堂√中文最新版在线| 红桃视频国产一区| 97精品久久| 激情不卡一区二区三区视频在线| 久久精品影视| 日韩二区在线观看| 成人欧美一区二区三区的电影| 最新日韩欧美| 国产精品永久| 亚洲国产专区| 日本aⅴ免费视频一区二区三区| 97视频热人人精品免费| 麻豆亚洲精品| 国产精品99久久免费观看| 99久久精品网站| 日韩在线观看中文字幕| 不卡一二三区| 伊人国产精品| 国精品产品一区| 亚洲黄色在线| 麻豆精品久久| 午夜在线播放视频欧美| 精品久久视频| 亚洲有吗中文字幕| 中文字幕成在线观看| 久久高清国产| 国产一区二区精品久| 国产亚洲精品久久久久婷婷瑜伽| 国产精品www.| 久久国产高清| 精品久久中文| 亚洲欧美专区| 日韩精品欧美激情一区二区| 蜜桃视频第一区免费观看| 精品国产乱码| 亚洲精品国产日韩| 久久要要av| 久久久久亚洲精品中文字幕| 中文字幕av一区二区三区人| 亚洲性色av| 国产精品手机在线播放| 99亚洲视频| 国产精品蜜芽在线观看| 青草国产精品| 亚洲欧美日本日韩| 久久激情一区| 精品国产亚洲日本| 国产精品分类| 亚洲免费成人av在线| 成人福利视频| 国产精品传媒麻豆hd| 亚洲一区二区三区在线免费| 一区二区三区四区在线看| 精品中国亚洲| 欧美在线观看天堂一区二区三区| 亚洲自啪免费| 99久久婷婷这里只有精品| 荡女精品导航| 国产精品久久久免费| 午夜久久av| 另类av一区二区| 视频一区中文| 久久一区二区三区喷水| 高清av不卡| 欧美日韩一区二区三区不卡视频 | 日本一不卡视频| 日韩午夜在线| 91超碰国产精品| 999精品一区| 欧美黄色网页| 欧美成人基地| 日韩另类视频| 五月天av在线| 国产一区二区亚洲| 久久精品国产网站| 国产精品欧美大片| 久久精品99国产国产精| 88久久精品| 欧美亚洲免费| 国产探花在线精品一区二区| 日韩va欧美va亚洲va久久| 日韩综合一区二区三区| 亚洲精选av| 日韩免费精品| 日韩1区2区3区| 日本少妇一区二区| 亚洲精品欧美| 亚洲精品乱码久久久久久蜜桃麻豆| av亚洲在线观看| 蜜桃tv一区二区三区| 亚洲国产一区二区三区在线播放 | 日韩在线看片| 日韩网站中文字幕| 久久国产日韩| 亚洲欧美伊人| 午夜国产精品视频| 国产午夜久久| 亚洲久久一区| 清纯唯美亚洲综合一区| 国产美女亚洲精品7777| 久久精品国产在热久久| av综合电影网站| 日本蜜桃在线观看视频| 久久国产成人午夜av影院宅| 欧美在线亚洲综合一区| 久久午夜影视| 日韩精品成人| 欧美激情麻豆| 日韩在线看片| 日韩一级网站| 香蕉久久一区| 国产精品hd| 欧美天堂视频| 五月婷婷六月综合| 亚洲另类av| 国产日韩一区二区三区在线 | 日韩av免费| 国产一区导航| 欧美日韩国产一区二区在线观看| 久久精品亚洲| 免费高潮视频95在线观看网站| 欧美+亚洲+精品+三区| 老鸭窝毛片一区二区三区| 国产午夜精品一区在线观看| 福利一区和二区| 在线一区免费| 18国产精品| 日韩精品一卡| 蜜臀精品一区二区三区在线观看 | 私拍精品福利视频在线一区| 99视频在线精品国自产拍免费观看| 美美哒免费高清在线观看视频一区二区| 日本午夜免费一区二区| 日韩成人免费| 99视频在线精品国自产拍免费观看| 日韩精品中文字幕吗一区二区| 狠狠久久伊人| 国产精品嫩草99av在线| 91av一区| 欧美精品日日操| 亚洲乱码一区| 久久电影tv| 日韩中文av| 日韩一区欧美| 日韩国产在线不卡视频| 亚洲精品国产嫩草在线观看| 亚洲综合色婷婷在线观看| 超碰在线99| 亚洲美女91| 日产精品一区| 亚洲ab电影| 天堂√8在线中文| 亚洲欧美久久精品| 精品五月天堂| 巨乳诱惑日韩免费av| 精品国产一区二区三区性色av| 亚洲综合三区| 日韩深夜视频| 日韩三级久久| 激情欧美一区| 麻豆精品在线观看| 影音先锋久久精品| 日韩高清成人|