用法:
class unittest.mock.AsyncMock(spec=None, side_effect=None, return_value=DEFAULT, wraps=None, name=None, spec_set=None, unsafe=False, **kwargs)
MagicMock
的异步版本。AsyncMock
对象的行为将使得该对象被识别为异步函数,并且调用的结果是可等待的。>>> mock = AsyncMock() >>> asyncio.iscoroutinefunction(mock) True >>> inspect.isawaitable(mock()) True
mock()
的结果是一个异步函数,它在等待后将具有side_effect
或return_value
的结果:- 如果
side_effect
是一个函数,异步函数将返回该函数的结果, - 如果
side_effect
是异常,异步函数将引发异常, - 如果
side_effect
是一个可迭代对象,则异步函数将返回可迭代对象的下一个值,但是,如果结果序列用完,则立即引发StopAsyncIteration
, - 如果
side_effect
未定义,异步函数将返回由return_value
定义的值,因此,默认情况下,异步函数返回一个新的AsyncMock
对象。
将
Mock
或MagicMock
的spec
设置为异步函数将导致调用后返回协程对象。>>> async def async_func(): pass ... >>> mock = MagicMock(async_func) >>> mock <MagicMock spec='function' id='...'> >>> mock() <coroutine object AsyncMockMixin._mock_call at ...>
将
Mock
、MagicMock
或AsyncMock
的spec
设置为具有异步和同步函数的类将自动检测同步函数并将它们设置为MagicMock
(如果父模拟是AsyncMock
或MagicMock
)或Mock
(如果父模拟是Mock
)。所有异步函数都是AsyncMock
。>>> class ExampleClass: ... def sync_foo(): ... pass ... async def async_foo(): ... pass ... >>> a_mock = AsyncMock(ExampleClass) >>> a_mock.sync_foo <MagicMock name='mock.sync_foo' id='...'> >>> a_mock.async_foo <AsyncMock name='mock.async_foo' id='...'> >>> mock = Mock(ExampleClass) >>> mock.sync_foo <Mock name='mock.sync_foo' id='...'> >>> mock.async_foo <AsyncMock name='mock.async_foo' id='...'>
3.8 版中的新函数。
- 如果
相关用法
- Python unittest.mock.AsyncMock.assert_awaited_once_with用法及代码示例
- Python unittest.mock.AsyncMock.assert_any_await用法及代码示例
- Python unittest.mock.AsyncMock.await_args_list用法及代码示例
- Python unittest.mock.AsyncMock.assert_awaited_with用法及代码示例
- Python unittest.mock.AsyncMock.assert_has_awaits用法及代码示例
- Python unittest.mock.AsyncMock.assert_awaited_once用法及代码示例
- Python unittest.mock.AsyncMock.await_count用法及代码示例
- Python unittest.mock.AsyncMock.await_args用法及代码示例
- Python unittest.mock.AsyncMock.assert_awaited用法及代码示例
- Python unittest.mock.Mock.reset_mock用法及代码示例
- Python unittest.mock.Mock.__class__用法及代码示例
- Python unittest.mock.Mock.call_args用法及代码示例
- Python unittest.mock.call用法及代码示例
- Python unittest.mock.Mock.method_calls用法及代码示例
- Python unittest.mock.Mock.call_args_list用法及代码示例
- Python unittest.mock.Mock.assert_called用法及代码示例
- Python unittest.mock.Mock.assert_not_called用法及代码示例
- Python unittest.mock.Mock.mock_calls用法及代码示例
- Python unittest.mock.Mock.assert_has_calls用法及代码示例
- Python unittest.mock.Mock.configure_mock用法及代码示例
注:本文由纯净天空筛选整理自python.org大神的英文原创作品 unittest.mock.AsyncMock。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。