【发布时间】:2013-10-10 14:45:06
【问题描述】:
我正在阅读 Steve Sanderson 的《Pro ASP.NET MVC Framework》一书,但我在一个单元测试中遇到了一些问题,这些问题会产生错误。
在下面的示例中,它测试分页。
[TestMethod]
public void Can_Paginate()
{
Mock<IProductRepository> mock = new Mock<IProductRepository>();
mock.Setup(m => m.Products).Returns(new Product[] {
new Product{ProductID=1,Name="P1"},
new Product{ProductID=2,Name="P2"},
new Product{ProductID=3,Name="P3"},
new Product{ProductID=4,Name="P4"},
new Product{ProductID=5,Name="P5"}
}.AsQueryable());
ProductController controller = new ProductController(mock.Object);
controller.PageSize = 3;
IEnumerable<Product> result = (IEnumerable<Product>)controller.List(2).Model;
Product[] prodArray = result.ToArray();
Assert.IsTrue(prodArray.Length == 2);
Assert.AreEqual(prodArray[0].Name, "P4");
Assert.AreEqual(prodArray[0].Name, "P5");
}
消息错误是:
测试方法 UnitTestProject3.Peginate.Can_Peginate 抛出异常: System.NullReferenceException。
有没有人遇到过类似的问题或通过了测试?
【问题讨论】:
-
它说的是哪一行?
-
能把List方法的代码贴在控制器上吗?
-
你不是通过在书中输入代码来学习编程的。你通过了解你在做什么以及编译器告诉你什么来学习编程。
NullReferenceException是什么以及如何调试和消除它们,在 here 中进行了解释。 -
@ysrb 18 行,但是这一行是空的
标签: c# asp.net-mvc unit-testing