Насмешка текстового контекста для объекта, который имеет зависимость - PullRequest
3 голосов
/ 03 июня 2010

Я пишу некоторые модульные тесты в своем проекте, и у меня есть зависимость datacontext от контроллера, содержащая методы, которые я хотел бы протестировать.

Я использую Ninject для внедрения зависимости и Moq для создания моего фиктивного текстового контекста. Мой DI использует интерфейс IDataContext, который имеет значение для моего dbml и используется в процессе инъекции.

В моем модульном тесте я создаю свой фиктивный текст данных следующим образом:

var mock = new Mock<IDataContext>();
var myController = new MyController(mock.Object);

Это создает исключение Object reference not set to an instance of an object. во второй строке при выполнении конструктора datacontexts.

Я явно упускаю фундаментальную часть при настройке этого, однако большинство примеров Moq, которые я видел, включают в себя какой-то тест на макетированный объект с использованием Setup().

Правильно ли я поступаю? Должен ли я создавать макет моего IDataContext интерфейса или что-то еще?

1 Ответ

2 голосов
/ 04 июня 2010

ха-ха, Ответ пришел, когда я читал блог Эмада о модульном тестировании в ASP.Net MVC.

Я предполагаю, что вы не добавили строку подключения в app.config вашего тестового проекта, верно? :)

И это способ зависимости базы данных, потому что вы все еще не дразните конец базы данных. Поэтому, если вы хотите это сделать, вам нужно зайти в Google для получения некоторых кодов, есть несколько способов сделать это.

Я нахожу эти несколько ссылок ниже весьма полезными, но, поскольку у меня нет необходимости издеваться над концом базы данных, я сейчас просто использую свой тестовый сервер БД.

ссылка

...