之前是这样的:单元测试TryUpdateModel在MVC 2 RC尴尬的行为
TryUpdateModel(entity, null, null, new[] { "Name", "Controller" });
我能单元测试这个控制器动作只是在我的测试中使用这个:
controller.ValueProvider = myFormCollection.ToValueProvider();
将我的代码迁移到MVC 2后,这不再起作用。它在FormCollection中的GetValue方法实现中保持失败,因为它验证您要求的值不为null或为空。事情是这个代码在运行时工作,但不是在我的单元测试。我没有使用前缀,因此我将NULL作为前缀值发送。
我查看了MVC 2 RC源代码,并且控制器的ValueProvider查找的第一个值是前缀,因此它失败了。我必须将哪个提供程序分配给controller.ValueProvider,以便它可以在我的单元测试中工作?
编辑:非常简短地问,如何告诉TryUpdateModel不要在我的单元测试中使用前缀,以便它不引发异常?
谢谢!