Python,API测试:断言失败,但“实际”和“预期”似乎相同

时间:2020-06-18 13:09:32

标签: python json python-3.x api pycharm

我正在尝试在Pycharm中运行简单的否定api测试。 它将api调用的json响应与“预期”数据进行比较。 呼叫返回此:

{'error_message': 'invalid UUID format'}

在我们的测试中,我们用^数据断言实际响应。 测试:

def test(environment):
resp = getSomeData(environment, negative)
respString = resp.read().decode('utf-8')
jsonResponse = json.loads(respString)
assert jsonResponse == "{'error_message': 'invalid UUID format'}"

在pycharm中使用pytest运行此测试时,它将返回

{'error_message': 'invalid UUID format'} != {'error_message': 'invalid UUID format'}

    Expected :{'error_message': 'invalid UUID format'}
    Actual   :{'error_message': 'invalid UUID format'}

请指出正确的方向。预先感谢

1 个答案:

答案 0 :(得分:2)

如评论中所指出,您的测试应将jsonResponse(是dict)与另一个dict(而不是字符串)进行比较:

assert jsonResponse == {'error_message': 'invalid UUID format'}

在这种情况下,测试输出不是很友好,因为它使您认为两个对象是相同的。