我需要模拟TryValidateModel,因为现在如果运行单元测试TryValidateModel,我将返回null。有很多例外。
我知道ModelState.IsValid是检查我们是否有正确模型的好方法,但是我不能在这里使用它。
if (TryValidateModel(object))
我想管理此方法的返回。
答案 0 :(得分:0)
您必须模拟要测试的控制器的ControllerContext ...
但是,这违反了单元测试通常应该执行的操作,您实际上在这里尝试进行什么测试?您不需要测试执行验证的ASP.Net代码,它已经进行了测试。您所要做的只是断言模型具有适当的特定属性,这并不是真正的行为,因此不需要进行测试。
您所有的自定义逻辑都应在某个域类中的控制器外部,您应对其进行测试...
您可以在实例化整个控制器并将模型传递给它的情况下进行集成测试