用于返回json字符串的方法的Python Unittest

时间:2015-04-14 20:44:37

标签: json python-3.x python-unittest

我是编写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

1 个答案:

答案 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对象或在响应中发现错误的情况执行否定测试也很好。