Asp.Net WebApi 调试利器“单元测试”

当我们编辑好一个WebApi应用程序后,需要对该Api接口进行调试,传统的调试办法是在方法内设置断点,然后用PostMan等http工具模拟访问进行查看WebAPI的运行情况,但这种除了效率较低还进行出现http的请求无法准确“命中”方法的难题。

下面,我给大家推荐的是---"单元测试"

如何进行单元测试呢?

首先,我们在解决方案中新建一个ASP.NET WebAPI应用程序。

如图所示。

点击确定后,选择空  并勾选WebAPI

然后填加一个Vaule控制器

该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,那么我们如何对这一结论进行测试呢?

下面就来讲讲单元测试的用法。在解决方案中选择新建项目  选择测试 目录下的单元测试。如图:

确认后,为了命名规范把第一个测试类命名成我们要测试的控制器的名称+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和返回的结果相等,那么该测试就会通过,否侧测试不通过,运行单元测试的方法如图,

即可查看测试是否通过。

 

posted @ 2018-01-18 22:05  码农阿宇  阅读(293)  评论(0编辑  收藏  举报