1. 程式人生 > >ASP.NET Core 對Controller進行單元測試

ASP.NET Core 對Controller進行單元測試

單元測試對我們的程式碼質量非常重要。很多同學都會對業務邏輯或者工具方法寫測試用例,但是往往忽略了對Controller層寫單元測試。我所在的公司沒見過一個對Controller寫過測試的。今天來演示下如果對Controller進行單元測試。以下內容預設您對單元測試有所瞭解,比如如何mock一個介面。在這裡多叨叨一句,面向介面的好處,除了能夠快速的替換實現類(其實大部分介面不會有多個實現),最大的好處就是可以進行mock,可以進行單元測試。 ## 測試Action 下面的Action非常簡單,非常常見的一種程式碼。根據使用者id去獲取使用者資訊然後展示出來。下面看看如何對這個Action進行測試。 ``` public class UserController : Controller { private readonly IUserService _userService; public UserController(IUserService userService) { _userService = userService; } public IActionResult UserInfo(string userId) { if (string.IsNullOrEmpty(userId)) { throw new ArgumentNullException(nameof(userId)); } var user = _userService.Get(userId); return View(user); } } ``` 測試程式碼: ``` [TestMethod()] public void UserInfoTest() { var userService = new Mock