ASP.NET Core 對Controller進行單元測試
阿新 • • 發佈:2020-06-18
單元測試對我們的程式碼質量非常重要。很多同學都會對業務邏輯或者工具方法寫測試用例,但是往往忽略了對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