setUpClass
クラスのsetUpTestData
、setUp
、TestCase
の違いは何ですか?
具体的には、それぞれのユースケースは何ですか?
これまでに理解したこと:
上記の理解から、setUpTestDataはsetUpClassとsetUpの間の領域にあるようです。 setUpClass
またはsetUp
のいずれか、あるいは両方の組み合わせによって同じ効果を達成できるのに、なぜsetuUpTestDataのクラスレベルのメソッドが必要なのですか?
編集:Alasdairのコメント後の更新/修正
setUpClass
は、クラス全体の初期化/構成(接続の作成、Webドライバーのロードなど)を実行するために使用されます。たとえば、setUpClass
を使用してデータベース接続/セッションを開く場合、tearDownClass
を使用してそれらを閉じることができます。setUpClass
は、テストを実行する前にTestCaseに対して1回呼び出されます。同様に、すべてのテストが実行された後でtearDownClass
が呼び出されます。ドキュメントからのメモ:
SimpleTestCaseとそのサブクラス(TestCaseなど)は、クラス全体の初期化(設定のオーバーライドなど)を実行するためにsetUpClass()とtearDownClass()に依存しています。これらのメソッドをオーバーライドする必要がある場合は、スーパー実装を呼び出すことを忘れないでください。
setUpTestData
は、TestCaseごとに初期テストデータを作成するために使用されます。このメソッドはTestCase.setUpClass()( src )によって呼び出されますsetUpTestData
はTestCaseに対して一度だけ呼び出されます。データベースがトランザクションをサポートしていない場合、setUpTestData
は各テストの実行前に呼び出されます(@Alasdairに訂正してくれてありがとう)setUp
は各テスト実行の前に呼び出され、各テスト実行のテストデータセットを準備するために使用する必要があります。setUpTestData
を使用すると、テストのパフォーマンスが向上します。テストでのこのデータの変更は、異なるテスト実行間で持続することに注意してください。リロードが必要な場合は、setUp
メソッドから再ロードできます。テストの実行に使用されるデータベースがトランザクションをサポートしない場合、パフォーマンスの向上は無効になります(setUpTestData
は各テストの実行前に呼び出されるため)