我需要使用以下代码对控制器方法结果进行单元测试
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
var item = listItems[indexPath.row]
item.completed = !item.completed //
listItems[indexPath.row] = item
tableView.reloadData()
}
结果和p在调试时显示模型中的10个项目,但似乎我不能做Count或foreach来检查返回的记录数,因为这两个对象都是字典。 如何才能做到这一点? 感谢
答案 0 :(得分:1)
ViewResult.Model
属于object
类型,您必须先将其强制转换为集合类型才能获得计数。
例如,如果您将整数列表作为模型传递给视图,则可以这样计算:
var model = p.Model;
var list = model as List<int>();
var count = list.Count;
答案 1 :(得分:0)
假设您的模型为IEnumerable<DataType>
,并且您希望在单元测试中获得此模型,则必须将result.ViewData.Model
强制转换为您的类型,然后执行断言:
var test = new StoreController();
var result = test.Index() as ViewResult;
var data = (IEnumerable<ModelType>) result.ViewData.Model;
Assert.AreEqual(10, data.Count());