unittest.TestCase クラスをオーバーライドして、このような追加機能を含めました。
class TestCase(unittest.TestCase):
def foo(self):
return 4711
setUpClass
このようなテストケースの呼び出しで使用します
class MyTest(TestCase):
@classmethod
def setUpClass(cls):
value = cls.foo() #1
value = MyTest.foo() #2
value = MyTest().foo() #3
value = TestCase().foo() #4
foo()
変更された unitest クラスに実装した関数にアクセスできません。
インスタンス化されていないクラスのメソッドにアクセスしようとしていて、foo がクラスメソッドではないため、#2 の試行が失敗することがわかります。クラスメソッドレベルから非クラスメソッドにアクセスしようとしているため (またはこれが正しく記述されている方法)、try #1 も機能しないことがわかります。しかし、#3/#4 を試すとなぜno such test method
エラーが発生するのでしょうか?
foo()
メソッドをクラスメソッドにせずにメソッドにアクセスするにはどうすればよいですか(これは外部のものであるため変更できないため)。