【发布时间】:2019-11-10 19:30:35
【问题描述】:
我尝试编写 unittest 来检查类方法是否被断言。
class Application:
async def func1(self):
await self.func2(self.func3())
async def func2(self, val):
pass
async def func3(self):
pass
并对其进行单元测试:
@pytest.mark.asyncio
async def test_method():
app = Application()
with patch.object(Application, 'func2') as mock:
await app.func1()
mock.assert_awaited_with(app.func3())
但我得到错误:
AssertionError: expected await not found.
Expected: func2(<coroutine object Application.func3 at 0x7f1ecf8557c0>)
Actual: func2(<coroutine object Application.func3 at 0x7f1ecf855540>)
为什么?我调用了同样的方法。我能用它做什么?
【问题讨论】:
-
它期待相同的身份,而不是平等。再次调用该方法会给你一个不同的对象。
-
我应该将协程传递给方法,我怎样才能给不同的对象?
标签: python-3.x python-asyncio python-unittest