我正在通過史蒂夫桑德森的書Pro ASP.NET MVC框架和我有一個單元測試產生錯誤的問題。Asp.Net MVC教程單元測試 - 史蒂夫桑德森
在下面的例子中,它測試了Paginate。
[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。
有沒有人遇到類似的問題或得到測試通過?
它說哪一行? – ysrb
您可以在控制器上發佈List方法的代碼? –
你不會在書中學習編程,你可以通過理解你在做什麼以及編譯器告訴你什麼來編程,你可以解釋什麼是NullReferenceException,以及如何調試和消除它們[這裏](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-in-net-and-how-do-i-fix-it)。 – CodeCaster