特定のクラスのいくつかのすべての 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