如何解决具有不完整呼叫清单的Python Mock呼叫顺序
我的目标是找出在一个对象的另一个函数之前是否先调用了一个对象的函数。
class A:
def foo( self ):
...
def foo2( self ):
...
class B:
def goo( self ):
...
class C:
def func( self,a: A,b: B ):
a.foo()
a.foo2()
b.goo()
通过单元测试,我想知道是否在a.foo()
之前调用了b.goo()
。
我已经在下面的代码中尝试过它,但是显然,它没有用,因为在它们之间有a.foo2()
被取消了。
class SomeTests( unittest.TestCase ):
def test_callOrder( self ):
aMock = Mock()
bMock = Mock()
topMock = Mock()
topMock.attach_mock( aMock,'a' )
topMock.attach_mock( bMock,'b' )
c = C()
c.func( aMock,bMock )
expectedCalls = []
expectedCalls.append( call.a.foo() )
expectedCalls.append( call.b.goo() )
topMock.assert_has_calls( expectedCalls,any_order=False )
我该如何忽略对a.foo2()
的调用,而只将断言集中在a.foo()
和b.goo()
上?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。