Как выполнить юнит-тест публичного метода void в C # MVC - PullRequest
0 голосов
/ 14 мая 2019

У меня есть публичный метод void, SaveCover2AData().Как я могу создать модульный тест для этого типа метода?

Это мой публичный метод, я передаю объект модели в качестве параметра в этом методе.

Теперь я хочу создать юниттест для этого метода:

public void SaveCover2AData(CASTabCover2a t2a)
{
    CASCreateViewModel obj = (CASCreateViewModel)Session["CASQuote"];

    t2a.Quote_Exposures = t2a.Quote_Exposures.Where(x => x.Exposure != null || x.ExposurePL != null).ToList();
    t2a.Quote_Jurisdictions = t2a.Quote_Jurisdictions.Where(x => x.Jurisdiction_Name != null || x.Country_NamePL != null).ToList();
    t2a.Quote_LimtOfIndemnitys = t2a.Quote_LimtOfIndemnitys.Where(x => x.Indemnity != null || x.IndemnityPL != null || x.LimitOfIndemnity_Currency != null).ToList();
    t2a.Quote_SubLimitOfIndemnitys = t2a.Quote_SubLimitOfIndemnitys.Where(x => x.Indemnity != null || x.IndemnityPL != null || x.SubLimitOfIndemnity_Currency != null).ToList();
    obj.TabCover2a = t2a;

    Session.Add("CASQuote", obj);
    ViewBag.Quote_Status_ID = JsonConvert.SerializeObject(obj.Quote_Status_ID);
}

Метод тестирования, который я пробовал до сих пор:

[TestMethod]
public void CASSaveCover2AData()
{
    builder.InitializeController(controller);
    var CASTabCover2a = new CASTabCover2a();
    controller.SaveCover2AData(CASTabCover2a);
    Assert.IsTrue(true);
}

Когда я отлаживаю этот тестовый пример, я получаю эту ошибку:

Исключение типа System.NullReferenceException произошло

1 Ответ

0 голосов
/ 14 мая 2019

Во-первых, имя вашей переменной здесь недопустимо

 var CASTabCover2a = new CASTabCover2a();

Во-вторых, методы void влияют на базу данных, вставляют или удаляют данные.В этой точке перед запуском вашего метода void получите количество строк в связанной таблице.Если количество строк изменилось, ваш метод работает правильно.

При вставке данных общее количество строк должно быть увеличено.Если удалено наоборот.

public void MyTestMethod()
{
    var total = db.Cars.Count(); 
    var car = new Car(); 
    db.Save(car);
    var total2 = db.Cars.Count();
    Assert.True(total2 > total);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...