如何在Python单元测试中正确生成ClientRequestException对象?
正确生成ClientRequestException对象的方法
错误根源在于你给ClientRequestException的response参数传递了字符串"hello",而该类构造函数要求接收一个完整的requests.Response对象——它会尝试读取该对象的headers属性,字符串显然没有这个属性,因此抛出AttributeError。
正确实现代码
from office365.runtime.client_request_exception import ClientRequestException from requests import Response # 构造合法的Response实例 resp = Response() resp.status_code = 404 # 配置响应头(Response的headers是大小写不敏感的字典,直接赋值即可) resp.headers['Content-Type'] = 'application/json' # 可选:设置响应内容(模拟实际接口返回的错误体) resp._content = b'{"error": "资源未找到"}' # 生成ClientRequestException对象 err = ClientRequestException(response=resp) print(err)
额外说明
- 无需手动修改
args属性,ClientRequestException的构造函数会自动处理参数逻辑 - 如果需要自定义异常提示消息,可将消息作为第一个参数传入:
err = ClientRequestException("请求的资源不存在", response=resp)
内容的提问来源于stack exchange,提问作者sfgroups
相关产品推荐
相关产品推荐

