我有一个公共无效方法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'的异常
答案 0 :(得分:0)
首先,您的变量名在此处无效
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);
}