我遇到了一些问题,尽管它们是不同的对象(至少返回),但给定类的几个所有 mox Mock 对象似乎在==
意义__eq__
上mock1 is mock2
是False
相等的。有什么办法可以防止这种行为?
在下面的代码示例中,您可以看到计数是错误的,因为它认为所有的模拟都是相等的:
import mox
class MyClass(object):
pass
real1 = MyClass()
real2 = MyClass()
listreal = (real1, real2)
mocker = mox.Mox()
mock1 = mocker.CreateMock(MyClass)
mock2 = mocker.CreateMock(MyClass)
listmock = (mock1, mock2)
real1 == real2 # False
real1 is real2 # False
listreal.count(real1) # 1
mock1 == mock2 # True
mock1 is mock2 # False
listmock.count(mock1) # 2