2014-11-12 2 views
1

У меня есть проект WEB API, который предоставляет некоторый REST API. Как написать тест, который запускает мою службу и выполняет некоторые HTTP-запросы?Как создать функциональные тесты ASP.NET WEB API

+0

так что вы хотите, чтобы писать тесты Unit или просто хотите проверить методы WebAPI? –

+0

Я хочу написать тест, который запрашивает метод WEB API, получает ответ и проверяет этот ответ –

+0

Я обновил свой ответ с подробным объяснением, если вы по-прежнему сталкиваетесь с какой-либо проблемой, дайте мне знать, если это полезно, пожалуйста, пожалуйста, подтвердите и принимайте его как ответил :). –

ответ

2

Вы можете просто добавить проект тестирования модуля в свое решение.

Check this image.

Пример кода контроллера WebAPI,

public class ValuesController : ApiController 
    { 
     // GET api/values 
     public IEnumerable<string> Get() 
     { 
      return new string[] { "value1", "value2" }; 
     } 

     // GET api/values/5 
     public string Get(int id) 
     { 
      return "value"; 
     } 

     // POST api/values 
     public void Post([FromBody]string value) 
     { 
     } 

     // PUT api/values/5 
     public void Put(int id, [FromBody]string value) 
     { 
     } 

     // DELETE api/values/5 
     public void Delete(int id) 
     { 
     } 
    } 

Образец WebAPI испытаний проект класса

[TestClass] 
    public class ValuesControllerTest 
    { 
     [TestMethod] 
     public void Get() 
     { 
      // Arrange 
      ValuesController controller = new ValuesController(); 

      // Act 
      IEnumerable<string> result = controller.Get(); 

      // Assert 
      Assert.IsNotNull(result); 
      Assert.AreEqual(2, result.Count()); 
      Assert.AreEqual("value1", result.ElementAt(0)); 
      Assert.AreEqual("value2", result.ElementAt(1)); 
     } 

     [TestMethod] 
     public void GetById() 
     { 
      // Arrange 
      ValuesController controller = new ValuesController(); 

      // Act 
      string result = controller.Get(5); 

      // Assert 
      Assert.AreEqual("value", result); 
     } 

     [TestMethod] 
     public void Post() 
     { 
      // Arrange 
      ValuesController controller = new ValuesController(); 

      // Act 
      controller.Post("value"); 

      // Assert 
     } 

     [TestMethod] 
     public void Put() 
     { 
      // Arrange 
      ValuesController controller = new ValuesController(); 

      // Act 
      controller.Put(5, "value"); 

      // Assert 
     } 

     [TestMethod] 
     public void Delete() 
     { 
      // Arrange 
      ValuesController controller = new ValuesController(); 

      // Act 
      controller.Delete(5); 

      // Assert 
     } 
    } 
Смежные вопросы