var result = mockController.Object.Index() as ViewResult; if (result == null) { throw new Exception("result is expected to be ViewResult but not."); }
Assert.AreEqual("", result.ViewName, "the view name is expected to be the default one but "{0}"", result.ViewName); Assert.AreEqual("", result.MasterName, "the master name is expected to be the default one but "{0}"", result.MasterName);
var model = result.ViewData.Model as IndexModel; if (model == null) { throw new Exception("model is expected to be IndexModel but not."); }
Assert.AreEqual(identity, model.Identity); Assert.AreEqual("Welcome to ASP.NET MVC!", model.Message); }从“var result = ...”这一行代码开始到结尾,都是对Index方法调用结果 的断言,其中包括以下几点:返回值为ViewResult对象ViewName是默认值MasterName是默认字符串Model为IndexModel对象Model的各属性为正确的值这不可或缺的五点要求总共占用了十几行代码(虽然它们都非常清晰明白) 。如果每个单元测试方法都需要编写这些代码,这无疑是一件令人乏味的事情。 这时,您就可以提供辅助方法来简化单元测试的编写。