これら2つの方法の間にランタイムロジックの違いはありますか?それとも何か違う?
そうでなければ、__init__
を忘れて、言語OOPパラダイムではなく名前空間に関するunittestsクラスについてここで考えているのはsetUpClass
なのでしょうか?setUpClassはいつ使うべきですか?__init__を使うべきですか?
9
A
答えて
11
2つは全く異なっています。
setUpClass
はクラスメソッドなので、クラスの属性のみを設定できるようになります。
これらはまた、異なる時に呼び出されます。テストランナーは、すべてのテストのの新しいインスタンスを作成します。テストクラスに5つのテストメソッドが含まれている場合、5つのインスタンスが作成され、__init__
が5回呼び出されます。
setUpClass
は、通常、とのみ呼ばれます。 (テストの順序付けを入れ替えて、異なるクラスのテストメソッドが混在している場合は、setUpClass
を複数回呼び出すことができます。tearDownClass
を使用して正しくクリーンアップしても問題ありません)。
また、テストランナーは通常、テスト実行の開始時にすべてのテストインスタンスを作成します。テストインスタンスが(多くの)状態を保持していないので、多くのメモリを消費しないので、これは通常安いです。
概算として、はではありません。__init__
を使用してください。 setUpClass
を使用してすべてのテスト間で状態を共有し、setUp
を使用してテストごとの状態を作成します。 setUp
は、テストが実行される直前に呼び出されるため、テストに必要となるまで、かつそれまでとは異なる、多くのメモリ集約的な状態を回避することができます。
関連する問題
- 1. C#では、いつ構造体を使うべきですか?クラスはいつ使うべきですか?
- 2. Jira Agileでは "Story"をいつ使うべきか "Improvement"を使うべきか
- 3. C#リストはいつ使うべきですか?そして、いつarraylistを使うべきですか?
- 4. display:blockを使うべきか、display:flexを使うべきですか?
- 5. @classmethodはいつ使うべきですか?defメソッド(self)を使うべきですか?
- 6. マルチスレッドと比べてselectをいつ使うべきですか?
- 7. リアクションナビゲーションではいつreduxを使うべきですか?
- 8. Python 3.xでは\ nをいつ使うべきですか?
- 9. ウェブジョブではなくロジックアプリケーションをいつ使うべきですか?
- 10. Pythonではいつsplit()を使うべきですか?
- 11. CodeIgniterではいつコアを使うべきですか?
- 12. Javaではfinalize()メソッドをいつ使うべきですか?
- 13. javascriptで '==='演算子はいつ使うべきですか?
- 14. BOOLとboolはいつC++で使うべきですか?
- 15. django - media_rootまたはstatic_rootをいつ使うべきですか?
- 16. いつ私はSynchronousQueueを使うべきですか
- 17. 私はいつもconnection.closeを使うべきですか?
- 18. redux-sagaでyield * vs yieldをいつ使うべきですか?
- 19. いつマルチスレッドをJavaで使うべきですか?
- 20. いつredhatBaseをapache2.confで使うべきですか?
- 21. いつこれをメソッドで使うべきですか?
- 22. いつC#で(...){...}を使うべきですか?
- 23. いつaxを使うべきですか? matplotlibで?
- 24. いつphpでセッション変数を使うべきですか?
- 25. いつPHPで名前空間を使うべきですか?
- 26. いつScalaで通常のクラスを使うべきですか?
- 27. Response.Redirect(URL、true)はいつ使うべきですか?
- 28. RenderScriptはいつ(本当に)使うべきですか?
- 29. cfthreadはいつ使うべきですか?
- 30. いつ「新しい」を使うべきですか?