2012-06-29 4 views
2

Я новичок в использовании moq. Я вхожу в создание отдельного тестового примера для проекта ASP.Net MVC2. В одном из контроллера У меня есть код,ASP.Net mvc2 ModelStateDictionary Isvalid mocking using Moq

, если (ModelState.IsValid) { ...... ...... }

Я пытался дразнить его в моем методе испытаний таким образом ..

var modelState = new Mock<ModelStateDictionary>(); 
modelState.Setup(x => x.IsValid).Returns(true); 

Но проблема все время я запустить тестовый метод ModelState.Isvalid возвращает ложь. Проблема в том, что я могу иметь дело только с моим тестовым проектом. Я не уполномочен вносить какие-либо изменения в свой проект ASP.Net mvc2. кто-нибудь из вас имеет какое-либо представление об этом? Спасибо.

ответ

1

Что вы можете сделать, это добавить ошибку модели к ModelState, как например:

var controller = new YourController(); 
controller.ModelState.AddModelError("An error"); 

с этими двумя линий IsValid должны быть ложными.

+0

Спасибо! Но я хочу, чтобы это всегда было правдой. У вас есть идея, почему он всегда возвращает false. – Dilma

+0

@ user1448197, если вы не добавили никаких ошибок модели, это не должно быть ложным. –