Testing of ASP.Net Web API Method

Introduction

This article explains how to perform testing of the ASP. NET Web API methods using Fiddler.

Testing is the practice of making objective judgments regarding the extent the system meets, exceeds or fails to meet the stated objectives.

Step 1

First we create the Web API application using the following:

  • Start Visual Studio 2012.
  • Select "File"->"New"->"Project".
  • On the template window select "Installed" -> "Template" -> "Other Languages" -> "Visual C#" -> "Web".
  • Now choose "ASP. NET MVC4 Web Application" and change the name to "Testing1".
  • Click on the "OK" button.
f1.jpg

Now a New ASP .NET MVC4 Project window is opened, then:

  • In this window select the "Web API".
  • And click on the "OK" button.
f2.jpg

Step 2

Now we add the Controller to the application using the following:

  • In the "Solution Explorer" right-click on "Controller folder".
  • "Add" -> "Controller".
f5.jpg
  • Open an "Add Controller" window.
  • Change the name to "ItemsController" and click on the "Add" button.
f6.jpg

Write this code in the "ItemsController":

using System;

using System.Collections.Generic;

using System.Linq;

using System.Net;

using System.Net.Http;

using System.Web.Http;

using Testing1.Models;

namespace Testing1.Controllers

{

    public class ItemsController : ApiController

    {

         private static List<Item> _items = new List<Item>()

 {

      new Item() { Id = 1, Name = "Mruti 800", Type = "Car" },

       new Item() { Id = 2, Name = "Super Splender", Type = "Byke" },

new Item() { Id = 3, Name = "Hero-Honda",Type= "Byke" },

new Item() { Id = 4, Name = "Herculus ", Type = "Bycle" },

    };

 public ItemsController() { }

[HttpGet]

 public IEnumerable<Item> GetItems()

{

    return _items;

}

[HttpGet]

        public Item GetItem(int id)

{

  Item pro = _items.Find(p => p.Id == id);

    if (pro == null)

        throw new HttpResponseException(HttpStatusCode.NotFound);

else

    return pro;

}

 [HttpGet]

        public IEnumerable<Item> GetProductsBySearch(string search)

 {

     var items = _items.Where(p => p.Type.Contains(search));

     if (items.ToList().Count > 0)

         return items;

     else

         throw new HttpResponseException(HttpStatusCode.BadRequest);

 }

 [HttpPost]

        public HttpResponseMessage PostProduct(Item p)

 {

     if (p == null)

         return new HttpResponseMessage(HttpStatusCode.BadRequest);

     _items.Add(p);

     return new HttpResponseMessage(HttpStatusCode.Created);

 }

 [HttpDelete]

        public IEnumerable<Item> DeleteProduct(int id)

 {

    Item pro = _items.Find(p => p.Id == id); _items.Remove(pro);

     return _items;

 }

[HttpPut]

        public HttpResponseMessage PutProduct(Item p)

{

    Item pro = _items.Find(pr => pr.Id == p.Id);

    if (pro == null)

        return new HttpResponseMessage(HttpStatusCode.NotFound);

    pro.Id = p.Id; pro.Name = p.Name; pro.Type = p.Type;

    return new HttpResponseMessage(HttpStatusCode.OK);

}

    }

    }

Step 3

Now create the Model Class using the following:

  • In the Solution Explorer right-click on the "Model Folder".
  • "Add" -> "Class".
f3.jpg
  • Open the "Add New Item" window.
  • Select "Installed" -> "Visual C#"and then choose the "Class".
  • Change the name to "Item".
f4.jpg

Now add this code into the "Item Model Class":

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

 

namespace Testing1.Models

{

    public class Item

    {

        public int Id { get; set; }

        public string Name { get; set; }

        public string Type{ get; set; }

    }

}

Step 4

Now we use the WebApiConfig.cs.

This is in the App_Start folder.

f.jpg

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web.Http;

 

namespace Testing1

{

    public static class WebApiConfig

    {

        public static void Register(HttpConfiguration config)

        {

            config.Routes.MapHttpRoute(

                name: "DefaultApi",

                routeTemplate: "api/{controller}/{id}",

                defaults: new { id = RouteParameter.Optional }

            );

        }

    }

}

 

Step 5

For executing the application press F5. Now we need to use Fiddle. We need to install it from the this link: "Fiddler"

It looks like this:

f8.jpg

Open Fiddler and click on the "Composer" tab. In the Composer tab we can compose our request and send it to the server.

Step 6

Now we host the application and use Fiddler for testing the methods of the Web API.

  • GET Method.
fid.jpg

fid1.jpg
  • GET by Id.
fid2.jpg

fid3.jpg
  • DELETE Method
fid4.jpg

fid6.jpg

  • GET item by type.
fid7.jpg

fid8.jpg

Up Next
    Ebook Download
    View all
    Learn
    View all