Rhino Mocks: Как смоделировать ADO.NET в DataRow? - PullRequest
4 голосов
/ 01 октября 2008

ADO.NET имеет пресловутый класс DataRow, создание которого вы не можете создать с помощью new. Это проблема сейчас, когда я нахожу необходимость издеваться над ней, используя Rhino Mocks.

У кого-нибудь есть идеи, как мне обойти эту проблему?

Ответы [ 3 ]

11 голосов
/ 01 октября 2008

Мне любопытно, почему вам нужно издеваться над 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;
}

Если это не та ситуация, в которой вы находитесь, тогда мне понадобится пример кода, чтобы понять, что вы пытаетесь сделать.

1 голос
/ 28 мая 2009

Я также использую Typemock Изолятор для этого, он может высмеивать вещи, которые другие насмешливые фреймворки не могут.

0 голосов
/ 01 октября 2008

Каждый раз, когда я не могу что-то высмеять (я предпочитаю MoQ, а не Rhino, но это не относится к делу), я должен кодировать вокруг него.

С моей точки зрения, у вас есть только два варианта. Заплатите за превосходную платформу, такую ​​как TypeMock, которая может издеваться над ЛЮБЫМ классом, или закодируйте обертку вокруг классов, которые не были написаны, чтобы быть смоделированными.

Это печальное положение дел в рамках. TDD не был большой проблемой в течение 1,1 дней.

...