當我們編輯好一個WebApi應用程式後,需要對該Api接口進行調試,傳統的調試辦法是在方法内設定斷點,然後用PostMan等http工具模拟通路進行檢視WebAPI的運作情況,但這種除了效率較低還進行出現http的請求無法準确“命中”方法的難題。
下面,我給大家推薦的是---"單元測試"
如何進行單元測試呢?
首先,我們在解決方案中建立一個ASP.NET WebAPI應用程式。
如圖所示。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuImZ0gzYykjM1MmMjRGNzEDZjZGOidzN2ATZihDM2AjYfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
namespace TestDemo.Controllers
{
public class ValueController : ApiController
{
[HttpGet]
public int Get(int x, int y)
{
return x + y;
}
}
}
一個很簡單的API接口,接收兩個Int類型資料傳回兩個資料之和。
我們當然知道,如果傳入的x=1,y=2,那麼傳回的結果肯定是3,那麼我們如何對這一結論進行測試呢?
下面就來講講單元測試的用法。在解決方案中選擇建立項目 選擇測試 目錄下的單元測試。如圖:
确認後,為了命名規範把第一個測試類命名成我們要測試的控制器的名稱+Test,如圖:
其次,需要填加對TestDemo也就是我麼你要測試的那個項目的引用。選擇引用,添加引用,然後勾選我們要測試的項目。
然後回到HomeControllerTest中,填加測試方法,該測試方法的代碼如下:
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using TestDemo.Controllers;
namespace WebApi_Test
{
[TestClass]
public class ValueControllerTest
{
[TestMethod]
public void TestMethod1()
{
var valueController = new ValueController();
var result = valueController.Get(1, 2);
Assert.AreEqual(3,result);
}
}
}
如果3和傳回的結果相等,那麼該測試就會通過,否側測試不通過,運作單元測試的方法如圖,
即可檢視測試是否通過。