Asp.net mvc 如何确保视图不存在空异常

Asp.net mvc 如何确保视图不存在空异常,asp.net-mvc,tdd,nunit,rhino-mocks,Asp.net Mvc,Tdd,Nunit,Rhino Mocks,我在控制器中有一个自定义DataView对象,它包含两个列表。我填充它们,然后将DataView对象作为视图的模型传递。在视图中显示数据时,我正在检查空引用。我想知道如何编写单元测试以确保程序员不会忘记检查视图中的空引用。我想测试视图是否存在这种类型的异常。 如果有人能给我一个rhino mocks测试框架的好例子,我会非常感激,因为我在大部分地方都使用它。 谢谢。虽然我不认为以下方法是理想的,但它可以防止出现NRE: public class ViewModel { public IEnu

我在控制器中有一个自定义DataView对象,它包含两个列表。我填充它们,然后将DataView对象作为视图的模型传递。在视图中显示数据时,我正在检查空引用。我想知道如何编写单元测试以确保程序员不会忘记检查视图中的空引用。我想测试视图是否存在这种类型的异常。 如果有人能给我一个rhino mocks测试框架的好例子,我会非常感激,因为我在大部分地方都使用它。
谢谢。

虽然我不认为以下方法是理想的,但它可以防止出现NRE:

public class ViewModel
{
  public IEnumerable<Item> Items
  {
     get { return items ?? new List<Item>(); }
     set { items = value; }
  }
}
公共类视图模型
{
公共数字项目
{
获取{返回项??新建列表();}
设置{items=value;}
}
}

虽然我不认为以下措施是理想的,但它可以防止出现NRE:

public class ViewModel
{
  public IEnumerable<Item> Items
  {
     get { return items ?? new List<Item>(); }
     set { items = value; }
  }
}
公共类视图模型
{
公共数字项目
{
获取{返回项??新建列表();}
设置{items=value;}
}
}

是的,你确实是对的,但假设我不想更改Itmes声明,那么如何在视图上编写测试以确保程序员检查空引用是很有趣的。这种方法不适合smth,比如:public Item-ItItem,因为在这种情况下,我想采取步骤,不管是否依赖空值,在另一种情况下,我必须检查Item对象的某个字段的值,在我看来,这不是一种非常干净的方法。是的,你确实是对的,但假设我不想更改Itmes声明,如何在视图上编写测试以确保程序员检查空引用是很有趣的。这种方法不适用于smth,比如:public Item ItItem,因为在这种情况下,我想采取步骤来确定是否依赖于空值,在另一种情况下,我必须检查Item对象的某个字段的值,在我看来,这不是一个非常干净的方法。你能澄清一下你的意思吗,也许用一些实际的伪代码来说明你想做什么。我不明白为什么这是一个犀牛嘲笑的问题。您似乎可以将null传递到视图中,然后查看是否存在错误。请您澄清一下您的意思,也许可以使用一些实际的伪代码来显示您希望执行的操作。我不明白为什么这是一个犀牛嘲笑的问题。您似乎可以将null传递到视图中,然后查看是否存在错误。