【发布时间】:2016-09-17 05:55:19
【问题描述】:
包结构:
pqr/pq.py
test.py
pqr/pq.py 具有以下结构
其中lmn是全局安装的pip模块
pq.py的结构
from lmn import Lm
class Ab():
def __init__(self):
self.lm = Lm()
def echo(self, msg):
print msg
test.py 具有以下结构
from pqr.pq import Ab
如何在这里模拟Lm() 类以便测试Ab 类的所有方法?
【问题讨论】:
-
Python 支持 Monkey-Patching。您可以简单地调用
pqr.pq.Lm = your_mockup和Ab将使用your_mockup而不是原来的Lm。 (这回答了您的问题,但它可能不是测试的最佳模式。考虑修改Ab的构造函数以允许传递替代的Lm实现作为替代。) -
@Phillip 谢谢你的回答,但我没有完全明白,你能给我一个工作代码sn-p吗,我是测试框架的新手。
标签: python python-2.7 namespaces mocking python-unittest