python-2.7 - 如何在 Python 单元测试中获取和断言以及 REST API?
问题描述
在尝试获取和断言 REST API 时,抛出“TypeError”。以下是我正在运行的代码
def test_get_action(self): action_id = self._get_action_id() """获取操作,成功,响应状态为 200""" resp = self.test_client.get_action(action_id) self.assertEqual(resp.response['status'], '200') self.assertEqual(resp.values()[0][0]['action_id'], action_id)
而且我看到错误为“TypeError:'dict_values'对象不支持索引”
进一步调查: * 在 Python 2.7 中运行此测试并看到上述错误 * 我将代码更改如下,但无法得出此结果。
- self.assertListEqual(resp.values()[0][0]['action_id'], action_id)
- 自己。assertSequenceEqual(resp.values()[0][0]['action_id'], action_id)
我是 Python 和单元测试的新手,请帮忙。
提前致谢。
解决方案
错误消息表明resp.values()
正在返回一个dict_values
对象而不是一个列表。
尝试将调用包装到resp.values()
调用中list()
:
self.assertEqual(list(resp.values())[0][0]['action_id'], action_id)
推荐阅读
- javascript - 无法设置本地存储
- c# - ASP.NET:如何使用命令行在文件夹中发布
- php - 在工艺品商业下订单后检索订单详细信息
- javascript - Ajax 调用使 jQuery 代码行为不端并破坏布局
- ios - 为不同的目标声明常量
- c++ - 从 C++ 代码通过 PQsendQuery 执行 sql 时 Postgres SQL 解析错误 - SQLState:42601 消息:在“”或附近出现语法错误
- mysql - 如何在单个语句中使用 AND 和 OR
- excel - 批量修改条目电子表格 - excel libreoffice calc
- reactjs - preload.ts 中的 contextBridge.exposeInMainWorld:ipcRenderer 接收到来自 main.ts 的消息,但渲染器没有得到它
- javascript - 根据“喜欢”状态更改 SVG 图标颜色