Unit testing در Web API
سه شنبه 1 تیر 1395در این مقاله ما یاد خواهیم گرفت که چگونه ازUnit testing در Web API استفاده کنیم.Unit testing در فرآیند توسعه و برنامه نویسی یک نرم افزار نقش بسیار مهمی بازی میکند. با کمک Unit testing میتوانیم هر متد را به تنهایی مورد تست و بررسی قرار دهیم، اجرای یک متد در Unit testing تاثیری بر سایر متدها نخواهد داشت. منظور از unit کوچکترین بخش قابل تست در برنامه است مانند: تابع، اینترفیس، procedure، کلاسها و ... .
Unit testing در فرآیند توسعه و برنامه نویسی یک نرم افزار نقش بسیار مهمی بازی میکند. با کمک Unit testing میتوانیم هر متد را به تنهایی مورد تست و بررسی قرار دهیم، اجرای یک متد در Unit testing تاثیری بر سایر متدها نخواهد داشت. منظور از unit کوچکترین بخش قابل تست در برنامه است مانند: تابع، اینترفیس، procedure، کلاسها و ... .
unit testing معمولا بعد از یکپارچه سازی انجام میشود.حال بیایید در Web API، مرحله به مرحله Unit Testing را ایجاد کنیم.
یک برنامه MVC ایجاد کنید
مرحله اول:
به قسمت File, New سپس Project بروید.
مرحله دوم:
"ASP.NET MVC 4 Web Application" را از لیست انتخاب کنید، سپس نام برنامه خود را "UnitTestingProj" بگذارید و مسیر ذخیره سازی برنامه انتخاب کنید.
مرحله سوم:
حال در قسمت Template ، "Web API" را انتخاب کنید.
مرحله چهارم:
یک کنترلر از نوع API empty controller و کلاس زیر را به برنامه اضافه کنید.
1. public class unittestController : ApiController 2. { 3. public List<city> Getcitylist() 4. { 5. 6. List<city> Lts = new List<city>(); 7. 8. Lts.Add(new city { cityid = 1, cityname = "تهران", Address = "شریعتی" }); 9. Lts.Add(new city { cityid = 2, cityname = "اصفهان", Address = "سی و سه پل" }); 10. Lts.Add(new city { cityid = 3, cityname = "خراسان رضوی", Address = "مشهد" }); 11. Lts.Add(new city { cityid = 4, cityname = "فارس", Address = "شیراز" }); 12. return Lts; 13. 14. } 15. 16. public class city 17. { 18. public int cityid { get; set; } 19. public string cityname { get; set; } 20. public string Address { get; set; } 21. 22. 23. } 24. }
برای استفاده از unit testing نیاز داریم که nuget package را به برنامه اضافه کنیم. بر روی پروژه خود راست کلیک کنید و گزینه Manage NuGet Packages را مانند تصویر زیر انتخاب کنید:
Microsoft ASP.NET Web API 2.2 Core package را در nuget جستجو کرده و آنرا نصب کنید.
یک کلاس دیگر با نام TestClass ایجاد کنید.
1. public class testclass 2. { 3. 4. [TestMethod] 5. public void testGetCityList() 6. { 7. try 8. { 9. var config = new HttpConfiguration(); 10. var Controller = new unittestController(); 11. var Route = config.Routes.MapHttpRoute("DefaultApi", "api/unittest"); 12. var RouteData = new HttpRouteData(Route, new HttpRouteValueDictionary { { "controller", "unittest" } }); 13. var Request = new HttpRequestMessage(HttpMethod.Get, "http://localhost:58068/api/unittest/9/9/9"); 14. Controller.ControllerContext = new System.Web.Http.Controllers.HttpControllerContext(config, RouteData, Request); 15. Controller.Request = Request; 16. Controller.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config; 17. GetUserProfileIdForErrorLog objUserProfileId = new GetUserProfileIdForErrorLog(); 18. objUserProfileId.UserProfileIdForError(2792); 19. ErrorObj objerror = new ErrorObj(); 20. objerror.UserProfileCurrentStatus = "8"; 21. var respone = Controller.Getcitylist(); 22. // Assert.AreEqual(HttpStatusCode.OK, respone.StatusCode); 23. } 24. 25. catch (Exception ex) 26. { 27. Assert.Fail("Expected no exception, but got: " + ex.Message); 28. throw; 29. } 30. }
همه متدهای test شامل صفت TestMethod می باشند. حال برای اجرای متد test به
Select Test -> Run -> All Tests بروید و عملیات تست را اجرا کنید.
آموزش asp.net mvc
- ASP.net MVC
- 1k بازدید
- 4 تشکر