2013-08-05 19 views

答えて

11

2つは全く異なっています。

setUpClassはクラスメソッドなので、クラスの属性のみを設定できるようになります。

これらはまた、異なる時に呼び出されます。テストランナーは、すべてのテストのの新しいインスタンスを作成します。テストクラスに5つのテストメソッドが含まれている場合、5つのインスタンスが作成され、__init__が5回呼び出されます。

setUpClassは、通常、とのみ呼ばれます。 (テストの順序付けを入れ替えて、異なるクラスのテストメソッドが混在している場合は、setUpClassを複数回呼び出すことができます。tearDownClassを使用して正しくクリーンアップしても問題ありません)。

また、テストランナーは通常、テスト実行の開始時にすべてのテストインスタンスを作成します。テストインスタンスが(多くの)状態を保持していないので、多くのメモリを消費しないので、これは通常安いです。

概算として、ではありません。__init__を使用してください。 setUpClassを使用してすべてのテスト間で状態を共有し、setUpを使用してテストごとの状態を作成します。 setUpは、テストが実行される直前に呼び出されるため、テストに必要となるまで、かつそれまでとは異なる、多くのメモリ集約的な状態を回避することができます。

関連する問題