Написание модульного теста для метода, возвращающего результат действия
Я сгенерировал тестовый пример для следующего метода; который возвращает результат действия - json-строку "Success". Как изменить сгенерированный скрипт?
public ActionResult LoginClick(string username, string password)
{
LoginRepo loginrepo = new LoginRepo();
BL bl = new BL();
bool loginStatus = loginrepo.CheckLogin(username, password);
if (loginStatus)
{
bl.SetSessionVariable("Username", username);
return Json(new { Status = "Success" }, JsonRequestBehavior.AllowGet);
}
return Json(new { Status = "Failed" }, JsonRequestBehavior.AllowGet);
}
Ниже приводится сгенерированный тестовый пример.
[TestMethod()]
[HostType("ASP.NET")]
[UrlToTest("http://localhost:1280")]
public void LoginClickTest()
{
LoginController target = new LoginController(); // TODO: Initialize to an appropriate value
string username = null; // TODO: Initialize to an appropriate value
string password = null; // TODO: Initialize to an appropriate value
ActionResult expected = null ; // TODO: Initialize to an appropriate value
ActionResult actual;
actual = target.LoginClick(username, password);
Assert.AreEqual(expected, actual);
Assert.Inconclusive("Verify the correctness of this test method.");
}
Как я должен изменить его, чтобы он мог успешно работать? Так как это результат действия, а данные представляют собой строку json, что следует ожидать, фактические результаты? Как мне написать assert?
1 ответ
How should i modify it so that it can run successfully?
Вам нужно будет ввести LoginRepo
, Больше информации с примером здесь
Так как это результат действия, а данные представляют собой строку json, что следует ожидать, фактические результаты? Как мне написать assert?
Вам нужно будет выполнить приведение типа так, чтобы получить JsonResult из ActionResult:
var viewResult = yourTargetController.LoginClickTest() as JsonResult;
Assert.AreEqual(false, viewResult.Data);