2009-02-23 14 views
6

私はMoqを使い始めて、私が必要なことをするための良いリソースを見つけるのが難しいです。Moqを使った模擬データセット

私は、ストアドプロシージャを介してデータセットを返すGetメソッドを持つData Interfaceクラスを持っています。これはコードが書かれた方法であり、私は現時点でそれを変更することができないので、このようにしなければなりません。

実際にデータベース呼び出しを行う必要がないように、データセットを擬似してデータを返すことで、このクラスをテストしたいと考えています。

誰でもこれをやっていますか?その場合は、どこから始めればいいですか?

答えて

7

データセットを入力するためにデータベース接続は必要ありません。あなたはこのように模倣することができます:

IDataInterface di = new Mock<IDataInterface>(); 
DataSet mockDataSet = CreateMockDataSet(); 
di.Expect(x => x.Get()).Returns(mockDataSet); 
something.UseDataInterface(di.Object); 

擬似データセットでの充填はかなり苦しいです。私がこの作業をしている場合、返されるDataSetの前にファサードインターフェイスを置くのが一般的です。これは擬似的に簡単です。または、コードを入力してDataTableを使用するように変更します。

また、単体テスト用にSQLiteやSQL Server CEなどの埋め込みデータベースを使用します。

+1

um ... CreateMockDataSet()は何をしますか?私はそれが質問だったと思った。 –

+1

良い点。私は、OPがDataSetのインターフェースを模擬する必要があると思っていたと私の答えは、これは必要ではないと指摘している。 'CreateMockDataSet()'は実際のデータベースから返されたかのように 'DataTable'インスタンスをまとめて' DataSet'に入れます。 –