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

即可查看测试是否通过。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java3y

Servlet第四篇【request对象常用方法、应用】

什么是HttpServletRequest HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所...

4475
来自专栏JMCui

多线程编程学习三(线程间通信).

一、概要 线程是操作系统中独立的个体,但这些个体如果不经过特殊的处理就不能成为一个整体,线程间的通信就是成为整体的必用方案之一。可以说,使线程进行通信后,系统...

2874
来自专栏JMCui

命令模式.

Topic:我们要制作一个简易的遥控器,有两个控制灯开关的按钮,并有一个操作回退按钮。

792
来自专栏技术之路

node.js 事件循环

  node.js是单线程的应用程序,但是他可能通过event和callback来支持并发。所有的node.js都是单线程的,也是异步的,他们使用调用异步函数来...

2326
来自专栏古时的风筝

Java 开发, volatile 你必须了解一下

1052
来自专栏C/C++基础

Makefile教程

Makefile定义了软件开发过程中,项目工程编译链、链接的方法和规则。 由IDE自动生成或者开发者手动书写。 Unix(MAC OS、Solaris)和Lin...

3322
来自专栏破晓之歌

Django 2.0 新特性 转

2017年12月2日,Django官方发布了2.0版本,成为多年来的第一次大版本提升,那么2.0对广大Django使用者有哪些变化和需要注意的地方呢?

1062
来自专栏Linux驱动

2.制作第一个驱动程序

先讲解驱动框架,然后写出first_drv驱动程序,来打印一些信息 写出first_drv驱动程序需要以下几步: (1)写出驱动程序first_drv_open...

2045
来自专栏机器学习从入门到成神

关于hibernate中对象的三种状态分析

一、首先Hibernate中对象的状态有三种:瞬态、游离态和持久态,三种状态转化的方法都是通过session来调用,瞬态到持久态的方法有save()、saveO...

2241
来自专栏Python研发

Django|第一部

  注明的MVC模式:所谓MVC就是把web应用分为模型(M),控制器(C),视图(V)三层;他们之间以一种插件似的,松耦合的方式连接在一起.

2203

扫码关注云+社区

领取腾讯云代金券