我有一个简单的异步函数,可以从Web上获取JSON:
async def fetch (session : aiohttp.ClientSession, url : str, pageSize : int = 100, pageNumber : int = 0):
async with session.get(url, params={'pageSize' : f"{pageSize}", 'pageNumber' : f"{pageNumber}"}) as response:
return await response.json()
如何为它编写单元测试?我目前正在学习如何在Python中执行此操作,并且已经决定使用unittest
和aiounittest
模块。我用于测试的脚手架如下:
class AsyncTest(aiounittest.AsyncTestCase):
async def test_fetch(self):
mocked_session = ... #no idea how to create
json = await fetch(mocked_session, "url_for_mock", 10, 0)
我认为我必须使用session
功能以某种方式模拟unittest.Mock()
参数以返回一些经过编码的json数据,但是我对如何执行此操作有些迷失,因此它可以在{{1}中使用}语句。我从未在Python中使用过单元测试库,这里提供一个示例非常有用。我正在使用Python 3.8和async with
进行联网。
答案 0 :(得分:0)
我能够通过实现自己的 for (int a : array) {
System.out.print(a + " ");
}
for(int b:array) {
System.out.print(b + " ");
}
魔术方法版本并使用__aenter__
来模拟相关的AsyncMock
方法来模拟异步资源管理器。模拟网络调用的概念验证测试如下所示:
async