ASP.Net mvc2 ModelStateDictionary使用Moq进行模拟无效

时间:2012-06-29 12:29:47

标签: asp.net unit-testing asp.net-mvc-2 moq

我是新手使用moq。我正在为ASP.Net MVC2项目创建一些单元测试用例。在一个控制器中,我有一个代码,

if(ModelState.IsValid){   ......   ...... }

我试图以这种方式在我的测试方法中模拟它..

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

但问题是我一直运行测试方法ModelState.Isvalid返回false。 问题是我只能处理我的测试项目。我无权对我的ASP.Net mvc2项目进行任何更改。你们中的任何人都知道这样做吗?三江源。

1 个答案:

答案 0 :(得分:1)

您可以做的是向ModelState添加模型错误,例如:

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

这两行IsValid应为假。