2014-03-14 20 views
2

我想使用猴子修補來更改所有語句,如time.sleep(5)myServer.sleep(5)。我怎麼能意識到它?非常感謝你!如何在Python中使用猴子修補來替換特定參數?

import test 
import subprocess 
import ast 
import os 
import time 
import sys 

if __name__ == "__main__": 

    def insomniac(duration): 
     pass # don't sleep 

    _original_sleep = time.sleep 
    time.sleep = insomniac 

    def dont_write(stuff): 
     pass # don't write 

    _original_write = sys.stdout.write 
    sys.stdout.write = dont_write 

    execfile("test.py") 

    exit(0) 
+0

猴子補丁不應該是你的第一個度假勝地。你想通過替換這些陳述來實現什麼目標? – user2357112

+0

你使用什麼編程語言?... Python? – alphanumeric

+0

我想測試原始代碼,所以不希望time.sleep浪費時間。 – user3327884

回答

1

如果你的重點是測試,即要確保在一些外部庫在你的控制被稱爲以特定的方式,一個可調用的,還有正在測試庫,可以幫助您與此,如mock。它可以很好地涉及到正確設置所有這些東西,所以當我進行編碼時,我通常會嘗試以最小化模擬使用的方式構造我的代碼。

看看documentation for mock如果你真的想讓你的腳趾溼向這個方向。在此時,您可能應該正式確定您的測試技術,以便使用unitttest。如果你輸了,Writing unit tests in Python: How do I start?