2017-04-14 12 views
0

私はPythonでいくつかのテストを実行しようとしています。私はUnittestフレームワークを使用しています。オブジェクトにUnitTestクラスの属性 'loads'がありません

"test_processJson"テストでは、テストJsonのdictTestStringを使用して、それに1つ以上の要素があるかどうかを確認します。

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に新たなんだので、私が探していた:これは私がテストを実行したときに、私はこのエラーを取得する私のスクリプト「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() 

問題が来るです答えは、私が見ている間違いのいずれかをしていない。

ご協力いただければ幸いです。

ありがとうございました。

答えて

1

関数の引数の名前はjsonで、グローバルなjsonモジュールの影です。実際にはこれがメソッドの最初の引数であるため、現在のMyTestインスタンスにバインドされ、unittestテストメソッドは引数として現在のインスタンスのみを期待し、json引数は必要ありません。 self(これはインスタンスメソッドの最初の引数の規則です)に名前を変更すると、問題が解決されます。

注:コードにいくつかのタイプミスや問題がありますが、私はそれらを見つけて解決するためにあなたに任せます。それは楽しさの一部ですね。

+0

ありがとう、私はそれを見ていないと信じられない! – subharb

関連する問題