2017-02-14 10 views
1

主な機能をあざける、それは属性を_cleanupsエラーを与えるには、次のコードPythonのunittestの私はsetUpClassメソッドを使用しようとすると

@classmethod 
    def setUpClass(self): 
     self.argv = ['installation_tool.py'] 
     argv_patcher = patch.object(sys, 'argv', self.argv) 
     self.addCleanup(self, argv_patcher.stop) 
     self.argv_mock = argv_patcher.start() 
     self.all_bears = get_all_bears_names_from_PyPI() 

に存在しない。しかし、私はsetUpメソッドを使用する場合、それは、うまく動作します他のメソッドではself.argv + = [asd、asda、asd]のような引数を追加できます。

def setUp(self): 
     self.argv = ['installation_tool.py'] 
     argv_patcher = patch.object(sys, 'argv', self.argv) 
     self.addCleanup(argv_patcher.stop) 
     self.argv_mock = argv_patcher.start() 
     self.all_bears = get_all_bears_names_from_PyPI() 

私はここでメイン関数をテストしようとしています。どのように私は主な機能をテストすることができますか?

setUpClassを使用して他のメソッドにsetUpメソッドを使用する必要があるため、これを行うにはどうしたらよいですか?

答えて

0

'cls'の代わりにsetUpClass(クラスメソッド)に 'self'を渡しています。あなたはクラスメソッドで自己を使うことはできません。 setUp(インスタンスメソッド)を使用する必要がある場合は、おそらく、異なるテストケース(すべてのテストケースが独自のsetUpメソッドを持つことができるため)でテストを分割し、作成したsetUpでテストを実行することができます。 setUpClassにも同じことが適用されます。したがって、異なるsetUpメソッドを定義する必要がある場合は、テストケースを分割することを検討してください。

関連する問題