单元测试

当我们编辑好一个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和返回的结果相等,那么该测试就会通过,否侧测试不通过,运行单元测试的方法如图,
单元测试