我有一个“索引”控制器方法,它返回一个模型为List<WhatsNew>
的视图。我试图在单元测试中验证这个方法,但它给了我一个错误,因为它期待一个字符串。
控制器
public ActionResult Index()
{
return View("Index", GetWhatsNew());
}
public List<WhatsNew> GetWhatsNew()
{
WCMSDataContext wcmsContext = new WCMSDataContext();
return (from p in wcmsContext.WhatsNews select p).ToList();
}
单元测试
[TestMethod]
public void Validate_Index_IList_WhatsNew_AS_Model()
{
AppItemController controller = new AppItemController();
// Act
var result = controller.Index();
// Assert
var model = ((ViewResult)result).Model as List<WhatsNew>;
Assert.AreEqual("Index", model.ToList());
}
错误
Assert.AreEqual failed. Expected:<Index (System.String)>. Actual: <System.Collections.Generic.List`1[WCMS.WhatsNew]
答案 0 :(得分:0)
您正在比较string
&#34;索引&#34;使用List<WhatsNew>
:
Assert.AreEqual("Index", model.ToList());
你期待在这里发生什么?
您可以查看模型的内容:
Assert.AreEqual(someValue, model.Count);
Assert.AreEqual(someOtherValue, model[0].SomeProperty);
您还可以检查操作中返回的正确页面:
Assert.AreEqual("Index", ((ViewResult)result).ViewName);
目前,你似乎试图将两者混合......
您可能希望阅读this之类的内容作为检查控制器的基本介绍。