如何在 Python 单元测试中获取和断言以及 REST API?
Posted
技术标签:
【中文标题】如何在 Python 单元测试中获取和断言以及 REST API?【英文标题】:How to fetch and assert and REST API in Python Unittests? 【发布时间】:2019-03-26 10:45:16 【问题描述】:在尝试获取和断言 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 和单元测试的新手,请帮忙。
提前致谢。
【问题讨论】:
【参考方案1】:错误消息表明resp.values()
正在返回dict_values
对象而不是列表。
尝试将对resp.values()
的调用封装在对list()
的调用中:
self.assertEqual(list(resp.values())[0][0]['action_id'], action_id)
【讨论】:
以上是关于如何在 Python 单元测试中获取和断言以及 REST API?的主要内容,如果未能解决你的问题,请参考以下文章
浅谈软件单元测试中的“断言” (assert) -- 从石器时代进步到黄金时代