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和返回的结果相等,那么该测试就会通过,否侧测试不通过,运行单元测试的方法如图,
即可查看测试是否通过。