Asp.net mvc 4 如何创建ASP.NET WEB API功能测试
我有一个WebAPI项目,它提供了一些RESTAPI。Asp.net mvc 4 如何创建ASP.NET WEB API功能测试,asp.net-mvc-4,rest,testing,Asp.net Mvc 4,Rest,Testing,我有一个WebAPI项目,它提供了一些RESTAPI。 如何编写运行我的服务并对其执行一些HTTP请求的测试?您只需将单元测试项目添加到解决方案中即可 WebApi控制器代码示例 public class ValuesController : ApiController { // GET api/values public IEnumerable<string> Get() { return new s
如何编写运行我的服务并对其执行一些HTTP请求的测试?您只需将单元测试项目添加到解决方案中即可 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)
{
}
}
公共类值控制器:ApiController
{
//获取api/值
公共IEnumerable Get()
{
返回新字符串[]{“value1”,“value2”};
}
//获取api/values/5
公共字符串Get(int-id)
{
返回“值”;
}
//后api/值
公共作废帖子([FromBody]字符串值)
{
}
//将api/values/5放入
公共void Put(int id,[FromBody]字符串值)
{
}
//删除api/values/5
公共无效删除(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
}
}
[TestClass]
公共类值控件测试
{
[测试方法]
公开作废获取()
{
//安排
ValuesController=新的ValuesController();
//表演
IEnumerable result=controller.Get();
//断言
Assert.IsNotNull(结果);
arest.AreEqual(2,result.Count());
Assert.AreEqual(“value1”,result.ElementAt(0));
Assert.AreEqual(“value2”,result.ElementAt(1));
}
[测试方法]
public void GetById()
{
//安排
ValuesController=新的ValuesController();
//表演
字符串结果=controller.Get(5);
//断言
断言.AreEqual(“值”,结果);
}
[测试方法]
公共空缺职位()
{
//安排
ValuesController=新的ValuesController();
//表演
控制人职务(“价值”);
//断言
}
[测试方法]
公开宣布作废
{
//安排
ValuesController=新的ValuesController();
//表演
控制器。输入(5,“值”);
//断言
}
[测试方法]
公共作废删除()
{
//安排
ValuesController=新的ValuesController();
//表演
删除(5);
//断言
}
}
那么您想编写单元测试用例还是只想测试WebApi方法?我想编写一个测试,请求WEB API方法,获得响应并检查此响应我已经更新了我的答案,并提供了详细的解释,如果您仍然面临任何问题,请告诉我,如果有帮助,请投票并接受回答:)。