![](/img/trans.png)
[英]ASP.NET Core 5 MVC: ArgumentNullException: Value cannot be null. (Parameter 'items')
[英]Unit testing ASP.NET Core 3.1 MVC controller - value cannot be null. (Parameter 'provider')
在來自 .NET 背景之后,我最近開始使用 .NET Core 3.1,只是想在新框架中對 MVC controller 進行單元測試。
在 .NET 創建一個 MVC 網站,用於提供添加單元測試項目的選項,而 Core 沒有; 所以我遵循了一些指南,並將這個簡單的測試放在了 MSTest 中,用於HomeController
索引視圖。
HomeController.cs:
public class HomeController : Controller
{
public IActionResult Index()
{
return this.View();
}
}
HomeControllerTests.cs:
[TestMethod]
public void WhenIndexIsExecutedAsyncThenContentShouldBeReturned()
{
// arrange
var httpContext = new DefaultHttpContext();
var controller = new HomeController()
{
ControllerContext = new ControllerContext
{
HttpContext = httpContext
}
};
var actionContext = new ActionContext
{
HttpContext = httpContext
};
// act
var result = controller.Index().ExecuteResultAsync(actionContext);
// assert
Assert.IsNotNull(result);
Assert.IsNull(result.Exception);
}
我收到一個錯誤:
值不能是 null。 (參數“提供者”)
而且我不知道是什么導致了錯誤。
為了我試圖實現的目標,即返回帶有某些內容的視圖的簡單測試(后者屬於集成測試),此代碼足以滿足第一次測試。 我的實現在第一次嘗試時過於復雜。
[TestMethod]
public void WhenIndexIsExecutedAsyncThenViewShouldNotBeNull()
{
// arrange
var controller = new HomeController();
// act
var result = controller.Index() as ViewResult;
// assert
Assert.IsNotNull(result);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.