クラス(コンシューマ)を含むConsumer.pyというモジュールを作成しました。このクラスは、計算に使用するさまざまなパラメータとロギングに使用されるloq queの名前を含む設定ファイルを使用して初期化されます。Python - 異なるクラスのメソッドをユニットテストする適切な方法は何ですか?
私はこのクラスの単体テストを書くので、私はTestConsumerMethods(unittest.TestCase)というクラスを使ってtest_Consumer.pyというスクリプトを作りました。
私がやったことは、consというコンシューマークラスの新しいオブジェクトを作成し、それを使ってテスト用のクラスメソッドを呼び出すことです。たとえば、Consumerには、指定されたディレクトリにファイルが存在するかどうかを調べる簡単なメソッドがあります。私が作ったテストはこのようになります
import Consumer
from Consumer import Consumer
cons = Consumer('mockconfig.config', 'logque1')
class TestConsumerMethods(unittest.TestCase):
def test_fileExists(self):
self.assertEqual(cons.file_exists('./dir/', 'thisDoesntExist.config), False)
self. assertEqual(cons.file_exists('./dir/', thisDoesExist.config), True)
私のクラスをテストする正しい方法ですか?私は理想的には、クラスをインスタンス化せずにクラスメソッドを使用したいのですが、コードを「分離する」ためです。
この問題は、それがテストを実行できる_only_な方法です。 unittestでそれらを発見することはできません。または、CIセットアップで簡単に実行することはできません。 – SpoonMeiser
@SpoonMeiser実際にはそうですが、いくつかのテストを実装する簡単な方法が必要な場合には良い方法です(例えば、 。 それでもテストを実装するのは簡単かつ迅速な方法ですが、限界があります。 私はそれが単にあなたが必要としているものに依存していると思います。 – vmonteco