pythonを使用していくつかの単体テストを行っており、setUpClass
でいくつかのテスト前チェックを行っています。どのようにunitest
-fail
をsetUpClass
、次の簡単な例として:
_class MyTests(unittest.TestCase):
@classmethod
def setUpClass(cls):
unittest.TestCase.fail("Test")
def test1(self):
pass
if __name__ == '__main__':
unittest.main()
_
エラーTypeError: unbound method fail() must be called with TestCase instance as first argument (got str instance instead)
を返します。
失敗したために発生するエラーはインスタンスメソッドであり、MyClass
のインスタンスはまだありません。インスタンスをオンザフライで使用する
_unittest.TestCase().fail("Test")
_
_unittest.TestCase
_自体にもテストがないため、これも機能しません。 MyClass
の条件が満たされない場合に、setUpClass
のすべてのテストを失敗させる方法はありますか?
追加質問:setUpClass
のテストを確認する方法はありますか?
self.fail("test")
をsetUpインスタンスメソッドに入れると、すべてのテストに失敗します
クラスレベルでこれを行う最も簡単な方法は、クラス変数を次のようにすることです。
@classmethod
def setUpClass(cls):
cls.flag = False
def setUp(self):
if self.flag:
self.fail("conditions not met")
これがあなたが望むものであることを願っています。
単純なアサートを使用するとうまくいくはずです
assert False, "I mean for this to fail"