我试图在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()
当我运行测试时出现问题我收到此错误:
追踪(最近一次呼叫最后一次):
文件“testing.py”,第16行,在test_processJson
中jTest = json.loads(dictTestString)
AttributeError:'MyTests'对象没有属性'loads'
我是python的新手,所以我一直在寻找答案,但我看到的任何错误都没有。
任何帮助将不胜感激。
感谢。
答案 0 :(得分:1)
您的函数的参数名为json
,其阴影是全局json
模块。实际上因为这是方法的第一个参数,所以它被绑定到当前的MyTest
实例,并且因为unittest测试方法只期望当前实例作为参数AND,所以你不需要{{1}这里的参数,你只需要将它重命名为json
(这是实例方法的第一个参数的约定),你的问题就会得到解决。
注意:你的代码还有其他几个错误/问题,但是我会让你找到并解决它们 - 这是乐趣的一部分不是吗?