【发布时间】:2015-06-20 15:18:15
【问题描述】:
我是编写 python 单元测试的新手。我在一个类中有一个从 API 返回 Json 响应的方法。 JSON 响应包含数据、令牌、对象名称和状态等属性。该方法每次都会访问 API 并返回具有不同值的响应,因此我无法对响应进行硬编码并对其进行测试。我怎样才能为这种类型的方法编写单元测试。
我想到的一件事是检查响应是否不为空。我可以在这里做任何其他类型的检查吗?
每次它返回一个不同的标记,日期(时间戳)。状态将相同。
def Json_get_status(self):
get_url = "xxxx" #URL to hit API
r = requests.get(get_url)
self.get_json = json.loads(r.text)
self.get_token=self.get_json["token"]
self.get_date=self.get_json["date"]
self.get_status=self.get_json["status"]
return self.get_json
【问题讨论】:
-
所有的数据是否每次都不同,或者有一些可以测试的字段?你能测试一下所有字段的类型是否正确,或者在适当的范围内吗?你能模拟出 API 调用吗?你到底想测试什么?
-
刚刚进行了有问题的编辑。是的,我可以尝试模拟 API 调用。我正在尝试测试此方法是否从 Json 响应中正确读取状态。
-
如果您将其拆分为更多单独的部分,您可能会发现这更容易 - 测试一个方法是否可以正确解析 JSON 字符串应该是微不足道的。您能否发布该方法,并在其周围放置一个最小的类骨架?
-
添加了方法骨架
标签: json python-3.x python-unittest