对象在UnitTest类中没有属性“loads”

2024-05-18 23:26:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用python运行一些测试。Im使用Unittest框架。在

测试“test_processJson”使用测试Json,dictTestString,然后检查它是否有一个或多个元素。这是我的剧本”测试.py““

import json
import starter#The code Im trying to test
import unittest

class MyTests(unittest.TestCase):

    def test_processJson(json):
        dictTestString = '{"city":"Barcelona"}'
        jTest = json.loads(dictTestString)  
        dictProcess = starter.processJson(dictTest)

        self.assertEquals(dictProcess["city"], "Barcelona")

if __name__ == '__main__':
    unittest.main()

当我运行测试时,问题出现了,我得到了这个错误:

Traceback (most recent call last):

File "testing.py", line 16, in test_processJson

jTest = json.loads(dictTestString)

AttributeError: 'MyTests' object has no attribute 'loads'

我是python新手,所以我一直在寻找答案,但我看到的任何错误我都没有做。在

如有任何帮助,将不胜感激。在

谢谢。在


Tags: pytestimportjsoncityunitteststarterim
1条回答
网友
1楼 · 发布于 2024-05-18 23:26:26

函数的参数名为json,它是全局json模块的影子。实际上,由于这是方法的第一个参数,它被绑定到当前的MyTest实例,并且由于unittest测试方法只希望将当前实例作为参数,而您不需要在这里使用json参数,您只需将其重命名为self(这是实例方法的第一个参数的约定),并且你的问题会解决的。在

注意:你的代码中还有一些其他的错误/问题,但我让你自己去发现和解决它们——这是乐趣的一部分,不是吗?在

相关问题 更多 >

    热门问题