大佬教程收集整理的这篇文章主要介绍了.net – 单元测试api控制器的示例代码,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
给定控制器代码有点像这样:
public class FooController : ApiController { private IRepository<Foo> _fooRepository; public FooController(IRepository<Foo> fooRepository) { _fooRepository = fooRepository; } public httpResponsemessage Post(Foo value) { httpResponsemessage response; Foo returnValue = _fooRepository.Save(value); response = request.CreateResponse<Foo>(httpStatusCode.Created,returnValue,this.Configuration); response.Headers.LOCATIOn = "http://server.com/foos/1"; return response; } }
Foo dto = new Foo() { Id = -1,Name = "Hiya" }; IRepository<Foo> fooRepository = mockRepository.Generatemock<IRepository<Foo>>(); fooRepository.stub(x => x.Save(dto)).Return(new Foo() { Id = 1,Name = "Hiya" }); FooController controller = new FooController(fooRepository); controller.request = new httprequestmessage(httpR_700_11845@ethod.Post,"http://server.com/foos"); //The line below was needed in WebApi RC as null config caused an issue after upgrade from Beta controller.Configuration = new System.Web.http.httpConfiguration(new System.Web.http.httpRouteCollection()); var result = controller.Post(dto); Assert.AreEqual(httpStatusCode.Created,result.StatusCode,"ExpecTing a 201 message"); var resultFoo = result.Content.ReadAsAsync<Foo>().Result; Assert.IsnotNull(resultFoo,"Response was empty!"); Assert.AreEqual(1,resultFoo.Id,"Foo id should be set");
以上是大佬教程为你收集整理的.net – 单元测试api控制器的示例代码全部内容,希望文章能够帮你解决.net – 单元测试api控制器的示例代码所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。