返回 json 字符串的方法的 Python 单元测试

问题描述 投票:0回答:1

我是编写 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
json python-3.x python-unittest
1个回答
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 对象或在响应中发现错误的情况进行负面测试。

© www.soinside.com 2019 - 2024. All rights reserved.