私はpythonでunittestを使ってプロジェクトをテストしています。このプロジェクトでは、他のPython開発者がサブクラス化するためのクラスを定義しています。プロジェクトを実行し、ユーザーが作成したサブクラスを利用できます。Pythonクラスメソッド内のテスト
サブクラスのメソッドがプロジェクトによって正しいデータを渡していることをテストしたいと思います。これどうやってするの?プロジェクトからサブクラス化するテストクラス内からunittest.TestCase.assert*
メソッドを呼び出すのは簡単ではありません。
TestCase
オブジェクトをグローバル変数に設定し、TestCase
オブジェクトのアサートメソッドをサブクラスメソッドから呼び出そうとしましたが、グローバル変数がテストクラスメソッドのスコープ内で定義されていないようです。
例
import unittest
import myproject
class TestProjectClass(unittest.TestCase):
def test_within_class_method(self):
myproject.run(config_file_pointing_to_ProjectClass) # Calls SomeUsersClass.project_method()
class SomeUsersClass(myproject.UserClassTemplate):
def project_method(self, data_passed_by_project):
#want to test data_passed_by_project in here
pass
どのようにテストを実行しますか?どんなテストランナークラスを使用していますか? – XORcist
テストはPyCharmの「tedting.pyのユニット実行テスト」によって実行されていますが、テストの実行方法ははっきりしていません。 – Shaun
質問は不明ですか?私はより多くの答えを期待していただろう。 – Shaun