Monkey Patching in Python
這陣子接了一個專案
而上層又提出要增加unitest的功能
但是如果依照舊程式碼要來改的話
就會改到天荒地老
所以這邊使用了一個小撇步 Monkey Patching
透過這個方式就可以把import的Module用自己的module給替換掉
非常方便
main.py
#!/usr/bin/env python
import sys
if __name__ == '__main__':
import os
from test import os as fake_os
old = os
sys.modules['os'] = fake_os
import os
os.system("touch a")
sys.modules['os'] = old
os.py
#!/usr/bin/env python
def system(cmd):
print cmd
0 意見 :
張貼留言