私は次の関数のためのユニットテストを書くのです:Pythonのユニットテスト:アサーションエラー問題
def _parse_args():
parser = argparse.ArgumentParser(
description='Script to configure appliance.'
)
parser.add_argument('--config_file',
help='Path to a JSON configuration file')
print parser.parse_args()
return parser.parse_args()
私は、configファイルは、上記の関数ではprint文を使用して検証(その後、指定されていない機能を実行すると、 ):私のユニットテストで parser.parse_args()=Namespace(config_file=None)
私は与えられていない設定ファイルで関数を実行してのassertEqualsを含める:
self.assertEquals(my_script._parse_args(), 'Namespace(config_file=None)')
しかし、これはAssertionErrorがを生成します。
AssertionError: Namespace(config_file=None) != 'Namespace(config_file=None)'
私は引用符なしにユニットテストを変更する場合:
self.assertEquals(my_script._parse_args(), Namespace(config_file=None))
私はNameErrorを得る:
NameError: global name 'Namespace' is not defined
は明らかに相場を使用することではありませんこれを行う正しい方法ですが、どうすればNamespace(config_file=None)
が発生していると主張するのですか?