単体テストを使用するためのフレームワークを非常に大きく肥大化したシステムに実装しようとしています。主な問題は、システムの 70% が静的メソッドで実装されていることです。これが私が Moles に到達した方法であり、目標を達成できると確信しています (かなり近づいています)。
私が今抱えている問題は、ジェネリックパラメーターを使用して静的メソッドをモール化しようとしていることです。
public static T ExecScalar<T>(IDbConnection cx, string commandText, IDbTransaction tx, IEnumerable<IDbDataParameter> parameters)
ウェブでグーグル検索すると、次のフォーラム メッセージが見つかりました。
http://social.msdn.microsoft.com/Forums/uk/pex/thread/3faadca2-a26f-449c-942e-d800a6079e02
それはまさに私の問題であり、マニュアルの 10 ページを読むことをお勧めします。
マニュアルの 10 ページを読みましたが、モールディングではなくスタビングについて書かれています。説明した解決策を適用しようとしましたが、次のようにします。
Ktcar.Cs.Dal.DB.Moles.MDALDB.ExecScalarIDbConnectionStringIDbTransactionIEnumerableOfIDbDataParameter<int> = delegate(IDbConnection conn, String command, IDbTransaction trx, IEnumerable<IDbDataParameter> parameters)
私は得る:
「ステートメントとして使用できるのは、割り当て、呼び出し、インクリメント、デクリメント、および新しいオブジェクト式のみです」</p>
私も試しました:
Ktcar.Cs.Dal.DB.Moles.MDALDB.ExecScalarIDbConnectionStringIDbTransactionIEnumerableOfIDbDataParameter<T> = delegate(IDbConnection conn, String command, IDbTransaction trx, IEnumerable<IDbDataParameter> parameters)
そして、私は同じエラーが発生します
または:
Ktcar.Cs.Dal.DB.Moles.MDALDB.ExecScalarIDbConnectionStringIDbTransactionIEnumerableOfIDbDataParameter = null;
そして、私は得る:
「「メソッド グループ」であるため、「ExecScalarIDbConnectionStringIDbTransactionIEnumerableOfIDbDataParameter」に割り当てることができません」</p>
Generic Type 出力を使用して静的メソッドをモックする方法について、誰か助けてもらえますか?