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
- 2k بازدید
- 4 تشکر