2017-04-14 28 views
0

我試圖在python中運行一些測試。我使用Unittest框架。對象在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'

我是新來的蟒蛇,所以我一直在尋找一個答案,但我看到我沒有做過的任何錯誤。

任何幫助將不勝感激。

謝謝。

回答

1

你的函數的參數被命名爲json,其中shadow是全局的json模塊。實際上,因爲這是方法的第一個參數,所以它被綁定到當前的MyTest實例,並且由於unittest測試方法僅僅期望當前實例作爲參數,並且在這裏您不需要參數json,所以您只需要將它重命名爲self(這是實例方法的第一個參數的約定),並且您的問題將得到解決。

注意:您的代碼中還有其他一些拼寫錯誤/問題,但我將它留給您找到並解決它們 - 這是樂趣的一部分,不是嗎?

+0

謝謝,不能相信我沒有看到! – subharb