私は、何らかの方法でそれを呼び出すための「ORMレイヤー」を提供する別のクラスから拡張されたいくつかのクラスがあるPythonプロジェクトで作業しています。これらのオブジェクトは、属性が変更されても DB 内で永続的です。
大きな問題は、これらのオブジェクトのロジックをテストしたいときに発生します。すべてをモックすることはほとんど不可能になり、気が狂いそうになります。
この種の状況をテストするための戦略や指示はありますか? ありがとう。
私は、何らかの方法でそれを呼び出すための「ORMレイヤー」を提供する別のクラスから拡張されたいくつかのクラスがあるPythonプロジェクトで作業しています。これらのオブジェクトは、属性が変更されても DB 内で永続的です。
大きな問題は、これらのオブジェクトのロジックをテストしたいときに発生します。すべてをモックすることはほとんど不可能になり、気が狂いそうになります。
この種の状況をテストするための戦略や指示はありますか? ありがとう。
一般的な戦略は、データベースや他のフレームワークをテストしないことです。それらが機能すると仮定します。
どの永続化/ORM フレームワークが使用されているかわかりません。しかし、ここでの良い戦略はモンキーパッチです: フレームワークをモックする代わりに、空のメソッドでデータベースにアクセスしようとするテストのメソッドを上書きします:
def nop(*args, **kw): pass
ORFramework.BaseObject.messThingsUp = nop
whereは、削除したいmessThingsUp
クラスのメソッドです。BaseObject