3

私は、何らかの方法でそれを呼び出すための「ORMレイヤー」を提供する別のクラスから拡張されたいくつかのクラスがあるPythonプロジェクトで作業しています。これらのオブジェクトは、属性が変更されても DB 内で永続的です。

大きな問題は、これらのオブジェクトのロジックをテストしたいときに発生します。すべてをモックすることはほとんど不可能になり、気が狂いそうになります。

この種の状況をテストするための戦略や指示はありますか? ありがとう。

4

1 に答える 1

1

一般的な戦略は、データベースや他のフレームワークをテストしないことです。それらが機能すると仮定します。

どの永続化/ORM フレームワークが使用されているかわかりません。しかし、ここでの良い戦略はモンキーパッチです: フレームワークをモックする代わりに、空のメソッドでデータベースにアクセスしようとするテストのメソッドを上書きします:

def nop(*args, **kw): pass

ORFramework.BaseObject.messThingsUp = nop

whereは、削除したいmessThingsUpクラスのメソッドです。BaseObject

于 2013-11-07T15:59:21.947 に答える