2016-09-07 4 views
0

assertInを使用して、JSON文字列の結果の一部が正しいことをテストしています。Python assertInテストステートメントが文字列を見つけられませんか?

test_json = some_function_returning_a_dict() 
self.assertIn(expected_json, test_json, "did not match expected output") 

エラーが

AssertionError: "'abc': '1.0012'," not found in [{'abc': '1.0012',...

Iは、内側列上Ctrl + Fを使用し、それは結果の文字列であっあります。私は、Python 3.0

+1

dictはJSON文字列ではなく、JSON文字列の検証には恐ろしい方法です。 – user2357112

答えて

3

右をチェックしたい辞書

のエントリです。のPythonのオペレータは、反復可能オブジェクトで動作します。 test_jsonのは、 "与えられた項目は辞書のキーです"を意味します。それはではありません辞書の検索のキー:値ペア。適切な変数と参照してこれを行う

assertIn('abc', test_json) 
assertEquals('1.0012', test_json['abc']) 

学生のための課題として残されている。これを行うには

は、2段階のプロセスを使用します。 :-)

+0

また 'items()'ビューを使うこともできます。 – user2357112

+0

私は解決策のほとんどを「学生」に任せました。 – Prune

1

"'abc': '1.0012',"を使用してい
は文字列で、{'abc': '1.0012', }はあなたがJSONで辞書のエントリではなく、文字列

1

あなたが与えている文字列が指定された辞書のキーであるかどうかを確認する辞書内の文字列を探しているようです。まず最初の辞書を文字列に変換せずに第2に何かを実行してくださいall(item in test_json.items() for item in expected_json.items())

関連する問題