4

「自己」の私の理解は、「このメソッドを含むクラスのインスタンス」のようなものを意味するということです。したがって、デフォルトの django テストが次の場合:

class SimpleTest(TestCase):
    def test_basic_addition(self):

ある意味では、SimpleTest のインスタンスを test_basic_addition に渡しています。このインスタンスには、ある時点で setUp メソッド (存在する場合) で定義されたアクションが適用されています。おそらくmanage.py test何らかの形でこのインスタンスを作成しますが、それが何であるかはよくわかりません! ここで実際に何が起こっているのですか?

4

1 に答える 1

3

実際、テスト ランナーは、作成したSimpleTestテスト メソッドごとにテスト クラス ( ) のインスタンスを作成します。selfそのインスタンスを指します。

unittestドキュメントから:

の各インスタンスはTestCase、単一のテスト メソッド ( という名前のメソッド) を実行しますmethodName

これは、テスト クラスで追加の「ヘルパー」メソッドを使用して、これらを で呼び出すことができることを意味しますself.name_of_helper_method()

unittest通常、フレームワークがどのようにテストをロードして実行するかについて心配する必要はありませんが、unittestドキュメントでこれについてさらに詳しく説明できます。

于 2012-11-03T14:31:08.670 に答える