Hỏi về Unit Testing asp.net mvc
Controller:
public class QCReservesController : BaseQCController
{
[Route("QCReserve")]
public ActionResult Index()
{
scm = new ServerCodeManager(ctrdata);
Models.QCReserveModels models = new Models.QCReserveModels();
//get List CCN
models.colNameList = GetDataCCN();
//get List Mas_loc_start
models.masterList = GetDataMasLoc();
return View(models);
}
Models: public class QCReserveModels
{
public string ID { get; set; }
public string ColAddCNNName { get; set; }
public string Name { get; set; }
[Required(ErrorMessage = "印刷枚数が入力されていません")]
public string TextNumber { get; set; }
public string Masterlocation { get; set; }
public List<ComboBoxOption> masterList { get; set; }
public List<ComboBoxOption> colNameList { get; set; }
}
DBAccess:
public class QCReserveDB : DbConnectionBase
{
public QCReserveDB() : base()
{
}
public List<ComboBoxOption> GetMasLocList()
{
ICMLog.EventLog("Get master location data.", GetType().Name, MethodBase.GetCurrentMethod().Name);
List<ComboBoxOption> masLocList = new List<ComboBoxOption>();
var masLocModel = new ComboBoxOption();
masLocModel.Key = Constants.DEFAULT_MAS_LOC_VAL;
masLocModel.Value = Constants.DEFAULT_MAS_LOC_VAL;
masLocList.Add(masLocModel);
try
{
var ds = serverCodeManager.GetCmbListOfMAS_LOC(ctrlData.CCN);
foreach (DataRow dr in ds.Tables[0].Rows)
{
masLocModel = new ComboBoxOption();
masLocModel.Key = dr[MAS_LOCDefine.COL_MAS_LOC].ToString();
masLocModel.Value = dr[MAS_LOCDefine.COL_ADD_MAS_LOC_MLOC_DESC].ToString();
masLocList.Add(masLocModel);
}
}
catch (Exception e)
{
ICMLog.ErrorLog(e.Message, GetType().Name, MethodBase.GetCurrentMethod().Name);
}
return masLocList;
}
public List<ComboBoxOption> GetListCCN()
{
ICMLog.EventLog("Get CCN data.", GetType().Name, MethodBase.GetCurrentMethod().Name);
List<ComboBoxOption> ccnList = new List<ComboBoxOption>();
var CCNModel = new ComboBoxOption();
CCNModel.Key = Constants.DEFAULT_MAS_LOC_VAL;
CCNModel.Value = Constants.DEFAULT_MAS_LOC_VAL;
ccnList.Add(CCNModel);
try
{
var ds = serverCodeManager.GetCmbListOfCCN();
foreach (DataRow dr in ds.Tables[0].Rows)
{
CCNModel = new ComboBoxOption();
CCNModel.Key = dr[CCNDefine.COL_CCN].ToString();
CCNModel.Value = dr[CCNDefine.COL_ADD_CCN_NAME].ToString();
ccnList.Add(CCNModel);
}
}
catch (Exception e)
{
ICMLog.ErrorLog(e.Message, GetType().Name, MethodBase.GetCurrentMethod().Name);
}
return ccnList;
}
}
trả về tên view Index();
=>mong các bạn chỉ cho mình để viết unit test e cần phải viết bao nhiêu hàm và test những cái gì
và làm sao để e có thể viết hàm test kiểm tra xem controller có trả về view(model) dữ liệu ở view có đúng không?
em có viết thử 1 hàm test nhưng chạy nó báo lỗi mong chỉ giáo cho luôn mình sai ở đâu?
[Test]
public void QCReserveIndex()
{
string expected = “Index”;
var controller = new QCReservesController();
var result = controller.Index() as ViewResult;
Assert.AreEqual(expected,result.ViewName);