天天看點

Asp.Net WebApi 調試利器“單元測試”

當我們編輯好一個WebApi應用程式後,需要對該Api接口進行調試,傳統的調試辦法是在方法内設定斷點,然後用PostMan等http工具模拟通路進行檢視WebAPI的運作情況,但這種除了效率較低還進行出現http的請求無法準确“命中”方法的難題。

下面,我給大家推薦的是---"單元測試"

如何進行單元測試呢?

首先,我們在解決方案中建立一個ASP.NET WebAPI應用程式。

如圖所示。

Asp.Net WebApi 調試利器“單元測試”
點選确定後,選擇空  并勾選WebAPI
Asp.Net WebApi 調試利器“單元測試”
然後填加一個Vaule控制器
Asp.Net WebApi 調試利器“單元測試”
該ValueController的代碼如下:

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,那麼我們如何對這一結論進行測試呢?

下面就來講講單元測試的用法。在解決方案中選擇建立項目  選擇測試 目錄下的單元測試。如圖:

Asp.Net WebApi 調試利器“單元測試”

确認後,為了命名規範把第一個測試類命名成我們要測試的控制器的名稱+Test,如圖:

Asp.Net WebApi 調試利器“單元測試”

其次,需要填加對TestDemo也就是我麼你要測試的那個項目的引用。選擇引用,添加引用,然後勾選我們要測試的項目。

Asp.Net WebApi 調試利器“單元測試”

然後回到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和傳回的結果相等,那麼該測試就會通過,否側測試不通過,運作單元測試的方法如圖,

Asp.Net WebApi 調試利器“單元測試”

即可檢視測試是否通過。

繼續閱讀