我确实为以下方法生成了测试用例;返回Action结果 - 一个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?
答案 0 :(得分:0)
How should i modify it so that it can run successfully?
您需要注入LoginRepo
。有关示例here
由于它的动作结果和数据是json字符串应该是什么 预期的,实际的结果?我该如何写断言?
您需要执行类似的类型转换才能从ActionResult获取JsonResult:
var viewResult = yourTargetController.LoginClickTest() as JsonResult;
Assert.AreEqual(false, viewResult.Data);