Python测试三方库
Mock、测试覆盖。
Mock类
第三方mock库: responses
具体使用参考官方示例, 最简单的用法:
import responses
import requests
@responses.activate
def test_simple():
responses.add(responses.GET, 'http://twitter.com/api/1/foobar',
json={'error': 'not found'}, status=404)
resp = requests.get('http://twitter.com/api/1/foobar')
assert resp.json() == {"error": "not found"}
assert len(responses.calls) == 1
assert responses.calls[0].request.url == 'http://twitter.com/api/1/foobar'
添加mock也支持以下方式,这样可以用一个独立函数包裹:
responses.add(
responses.Response(
method='GET',
url='http://twitter.com/api/1/foobar',
body="{'error': 'not found'}",
# 或
# json="{'error': 'not found'}",
status=200,
content_type='application/json'
)
)
Hypothesis
参数化数据准备.
扩展阅读
- responses: A utility for mocking out the Python Requests library.