Юнит-тест Все методы действий в контроллере в .Net core visual studio 2017 - PullRequest
0 голосов
/ 05 сентября 2018
 public async Task<IActionResult> Create(DonorViewModel be, IFormFile pic)
        {
            be.RegCampId = Convert.ToInt32(TempData["Camp"]);
            if (ModelState.IsValid)
            {
                DONOR entity = new DONOR(); 

                #region Insert Entities
                entity.Address = be.Address;
                entity.BarCode = be.BarCode;
                entity.BloodGroupId = be.BloodGroupId;
                entity.CityId = be.CityId;
                entity.CNIC = be.CNIC;
                entity.DOB = be.DOB;
                entity.Email = be.Email;
                entity.EmergencyContact = be.EmergencyContact;
                entity.FullName = be.FullName;
                entity.GenderId = be.GenderId;
                entity.HomeNo = be.HomeNo;
                entity.IsActive = true;
                entity.IsDeleted = false;
                entity.LastDonDate = be.LastDonDate;
                entity.MaritalStatus = be.MaritalStatus;
                entity.MobileNo = be.MobileNo;
                entity.Occupation = be.Occupation;
                entity.PreDonCount = be.PreDonCount;
                if (be.RegCampId != 0) { entity.RegCampId = be.RegCampId; entity.RegistrationTypeId = 3; }
                if (be.RegLocId != 0) { entity.RegLocId = be.RegLocId; entity.RegistrationTypeId = 2; }
                entity.SignPic = entity.SignPic;
                entity.WhatsApp = be.WhatsApp;
                entity.CreatedBy = (int)HttpContext.Session.GetInt32("UserId");
                entity.CreatedDateTime = DateTime.Now;

                #endregion
                flag = await _donorContext.AddAsync(entity);

                if (pic == null || pic.Length <= 0)
                    be.Pic = Path.Combine(_hostingEnvironment.WebRootPath, "images", "Avatar.png").Replace(_hostingEnvironment.WebRootPath, "").Replace("\\", "/");

                if (pic != null && pic.Length > 0)
                {
                    var path = Path.Combine(new string[]
                    {
                            _hostingEnvironment.WebRootPath,
                            "Reservoir","Donor",entity.Id.ToString(),
                            entity.Id + Path.GetExtension(pic.FileName)
                    });
                    Directory.CreateDirectory(Path.GetDirectoryName(path));
                    using (var stream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite))
                    {
                        pic.CopyTo(stream);
                    }
                    path = path.Replace(_hostingEnvironment.WebRootPath, "").Replace("\\", "/");
                    entity.Pic = path;

                    entity.CreatedBy = entity.CreatedBy;
                    entity.CreatedDateTime = entity.CreatedDateTime;
                    entity.IsActive = true;
                    entity.IsDeleted = false;
                    await _donorContext.UpdateAsync(entity);
                }

                if (flag)
                {
                    TempData["Message"] = "Donor is Added Successfully.";
                    if (be.RegCampId != 0)
                    {
                        return RedirectToAction("Create", "Donor", new { CampId = be.RegCampId });
                    }
                    else
                    {
                        return RedirectToAction("Create", "Donor");
                    }
                }
            }
            ViewData["RegCampId"] = new SelectList(_context.BLOOD_CAMP, "Id", "City", be.RegCampId);
            ViewData["BloodGroupId"] = new SelectList(_bloodGroupContext.GetAll(), "Id", "Value", be.BloodGroupId);
            ViewData["CityId"] = new SelectList(_cityContext.GetAll(), "Id", "Name", be.CityId);
            ViewData["ScreenedBy"] = new SelectList(_context.EMPLOYEE, "Id", "FirstName", be.ScreenedBy);
            ViewData["GenderId"] = new SelectList(_genderContext.GetAll(), "Id", "Name", be.GenderId);
            ViewData["RegLocId"] = new SelectList(_locationService.GetAll(), "Id", "Name",be.RegLocId);

            return View(be);
        }


This is My Create method In Controller How to unit test it using UnitTest.

using HMS_Presentation.Controllers;
using Microsoft.AspNetCore.Mvc;
using Microsoft.VisualStudio.TestTools.UnitTesting;


//Unit Test code .

namespace HMS_UnitTest
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void TestMethod1()
        {

            DonorController Controller = new DonorController();

            ViewResult result = Controller.Create() as ViewResult;

            Assert.AreEqual("",????);


        }
    }
}

Это мой код класса модульного тестирования, как использовать мой объект контроллера для проверки действий и проверки его. Что я должен написать в утверждении. Я ИЩУ это в Интернете, но не нахожу никакого правильного решения, пожалуйста, проверьте код ниже и скажите мне, что я должен написать в заявлении. Я использую Visual Studio 2017 и .NET CORE 2.0 И добавляю проект модульного теста в свое решение.

Ссылка, по которой я следовал. https://docs.microsoft.com/en-us/visualstudio/test/getting-started-with-unit-testing?view=vs-2017

1 Ответ

0 голосов
/ 05 сентября 2018

В ASPNET Core 2.1 введена функция под названием Функциональное тестирование приложений MVC . Чтобы упростить сквозное тестирование приложений MVC в памяти с помощью TestServer. См. Пример ниже

using Xunit;

namespace TestingMvc.Tests
{
    public class TestingMvcFunctionalTests : IClassFixture<WebApplicationTestFixture<Startup>>
    {
        public TestingMvcFunctionalTests(WebApplicationTestFixture<Startup> fixture)
        {
            Client = fixture.CreateClient();
        }

        public HttpClient Client { get; }

        [Fact]
        public async Task GetHomePage()
        {
            // Arrange & Act
            var response = await Client.GetAsync("/");

            // Assert
            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
        }
    }
}

Подробнее о функциональном тестировании приложений MVC нажмите здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...