我是编写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
答案 0 :(得分:0)
如果您的测试方法应该“正确读取状态”,那么您可能需要专门测试它。
假设您的应用程序类似于
def read_status(response):
parsed = json.loads(response)
# does other stuff
return something
然后在你的test_unit.py
中def test_read_status(self):
mock_input_val = {'something': 'good val'}
expected_positive_return_val = something
self.assertEqual(read_status(json.dumps(mock_input_val)),
expected_positive_return_val)
对于read_status无法解析json对象或在响应中发现错误的情况执行否定测试也很好。