【发布时间】:2021-02-22 09:01:02
【问题描述】:
async def test_coro(id):
print("pass")
async def test_coro2():
print("pass")
async def mock_test_coro(id):
print("pass")
async def mock_test_coro2():
print("hj")
class Test(AioHTTPTestCase):
async def get_application(self):
app = web.Application(debug=True)
return app
@unittest_run_loop
@patch(__name__ + '.test_coro', side_effect=(lambda id: mock_test_coro(id)))
@patch(__name__ + '.test_coro2', side_effect=(lambda: mock_test_coro2()))
async def test_1(self, test_coro, test_coro2):
await test_coro2()
await test_coro(0)
我在这个测试中失败了,因为(没有参数)
> test_coro = <AsyncMock name='test_coro2' id='139942609979472'>
> test_coro2 = <AsyncMock name='test_coro' id='139942609417456'>
为什么会这样? (如果有超过 2 个模拟 - 它会以随机顺序随机播放它们)
对于同步功能,它工作正常
【问题讨论】:
标签: unit-testing asynchronous mocking pytest python-3.5