コードの機能テストには、データベースなどの外部リソースが必要になることがよくあります。
基本的に 2 つのアプローチがあります。
- リソース (データベースなど) は常に実行されており、常に利用可能であると仮定します。
- テストの一環として関連リソースを開始/停止します
Python unittest(2) の「古い」世界では、サービスを制御するために setUp() および tearDown() メソッドを使用できました。
py.test により、世界はより複雑になり、 setUp() および tearDown() メソッドの概念は、フィクスチャを実装するための funcarg マジックに置き換えられました。正直なところ、このアプローチは壊れています - 少なくとも setUp/tearDown メソッドの代わりとして。
py.test が使用されているプロジェクトでサービスとリソースを制御するための推奨される方法は何ですか?
setUp/tearDown メソッドを使用してテストを (少なくとも必要に応じて) 書き続ける必要がありますか、それともより良いパターンがありますか?