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

/ [随笔分类].Net Core跨平台 / 没有评论 / 14 浏览

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

即可查看测试是否通过。

 

  1. 回复