【发布时间】:2014-10-31 06:12:48
【问题描述】:
我正在使用 sys.modules['cv2'] = Mock() 模拟 OpenCV 模块,但我无法使用 assertEqual 测试是否已使用全局变量正确设置变量。我已经稍微简化了代码。
我不确定我的嘲讽是否正确。
这是我的单元测试文件:
from mock import patch, Mock
sys.modules['cv2'] = Mock()
from MyClass import MyClass
del sys.modules['cv2']
....
def testFunction()
myObject = MyClass()
self.assertEqual(myObject.val, ?) # here i don't know how to test the equality
还有文件MyClass.py:
import module
val1 = cv2.function(1)
val2 = cv2.function(2)
class MyClass():
def _init_(self)
self.val = val1
【问题讨论】:
-
如果你正在做
sys.modules['cv2'] = Mock()然后del sys.modules['cv2']你正在删除sys.modules['cv2'](模拟对象) - 没有多大意义...... -
对我来说,在嘲笑之后进行删除更干净。每个 opencv 函数在导入期间都是模拟的。也许我错了
-
您在模拟后删除 2 行 - 不使用模拟对象
-
好的,但即使删除删除行,我如何测试我的相等性?
-
好吧,从您的代码中不清楚您要比较什么...
标签: python unit-testing mocking