4

ADO.NET には、new を使用してインスタンス化できない悪名高い DataRow クラスがあります。これは、Rhino Mocks を使用してモックする必要があることがわかった今、問題です。

この問題を回避する方法を知っている人はいますか?

4

4 に答える 4

12

DataRow をモックする必要がある理由が気になります。ときどき、モックに夢中になって、本物を使用するのと同じくらい賢明であることを忘れてしまうことがあります。データ行を渡している場合は、単純にヘルパー メソッドでインスタンス化して、それをモックの戻り値として使用できます。

SetupResult.For(someMockClass.GetDataRow(input)).Return(GetReturnRow());

public DataRow GetReturnRow()
{
    DataTable table = new DataTable("FakeTable");
    DataRow row = table.NewRow();
    row.value1 = "someValue";
    row.value2 = 234;

    return row;
}

これがあなたの状況ではない場合、あなたが何をしようとしているのかを理解できるようにするために、いくつかのサンプルコードが必要になります.

于 2008-10-01T01:11:18.440 に答える
1

これにはTypemock Isolatorも使用します。これは、他のモック フレームワークではできないことをモックできます。

于 2009-05-28T11:46:58.707 に答える
0

何かをモックできないときはいつでも (私は Rhino よりも MoQ を好みますが、それは論外です)、その周りをコーディングする必要があります。

私の見方では、選択肢は 2 つしかありません。任意のクラスをモックできる TypeMock などの優れたフレームワークを購入するか、モック用に作成されていないクラスのラッパーをコーディングします。

フレームワーク内のその悲しい状況。1.1 の時代には、TDD は大きな問題ではありませんでした。

于 2008-10-01T01:05:10.703 に答える