对象在 UnitTest class 中没有属性 'loads'
object has no attribute 'loads' in UnitTest class
我正在尝试 运行 在 python 中进行一些测试。我正在使用 Unittest 框架。
测试“test_processJson”使用测试Json,dictTestString,然后检查它是否有一个或多个元素。这是我的脚本“testing.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 的新手,所以我一直在寻找答案,但我没有犯任何我见过的错误。
我们将不胜感激。
谢谢。
您函数的参数名为 json
,它是全局 json
模块的影子。实际上,因为这是一个方法的第一个参数,它被绑定到当前的 MyTest
实例,并且由于 unittest 测试方法只期望当前实例作为参数并且你不需要 json
这里的参数,你只需要将它重命名为 self
(这是实例方法第一个参数的约定),你的问题就会得到解决。
注意:您的代码还有一些其他拼写错误/问题,但我将其留给您来查找和解决它们 - 这也是乐趣的一部分,不是吗?
我正在尝试 运行 在 python 中进行一些测试。我正在使用 Unittest 框架。
测试“test_processJson”使用测试Json,dictTestString,然后检查它是否有一个或多个元素。这是我的脚本“testing.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 的新手,所以我一直在寻找答案,但我没有犯任何我见过的错误。
我们将不胜感激。
谢谢。
您函数的参数名为 json
,它是全局 json
模块的影子。实际上,因为这是一个方法的第一个参数,它被绑定到当前的 MyTest
实例,并且由于 unittest 测试方法只期望当前实例作为参数并且你不需要 json
这里的参数,你只需要将它重命名为 self
(这是实例方法第一个参数的约定),你的问题就会得到解决。
注意:您的代码还有一些其他拼写错误/问题,但我将其留给您来查找和解决它们 - 这也是乐趣的一部分,不是吗?