0
我一直在創建一個單元測試,但似乎失敗了。任何人都可以幫助我爲這個控制器創建一個單元測試嗎?單元測試mvc登錄
我已經嘗試過各種方法。
public class logInController : Controller
{
[HttpPost]
public ActionResult Index(logInModel model)
{
if(ModelState.IsValid)
{
int match = 0;
sqlConn = new SqlConnection(sqlConnString);
sqlComm = new SqlCommand("spLogin", sqlConn);
sqlComm.CommandType = CommandType.StoredProcedure;
sqlComm.Parameters.AddWithValue("@userName", model.Username);
sqlComm.Parameters.AddWithValue("@password", model.Password);
SqlParameter userMatch = new SqlParameter("@userMatch", SqlDbType.Int);
userMatch.Direction = ParameterDirection.Output;
sqlComm.Parameters.Add(userMatch);
sqlConn.Open();
sqlComm.ExecuteNonQuery();
match = Convert.ToInt32(sqlComm.Parameters["@userMatch"].Value);
sqlConn.Close();
if (match != 0)
{
FormsAuthentication.SetAuthCookie(model.Username, false);
return RedirectToAction("index","home");
}
else
ModelState.AddModelError("", "Invalid username or password");
}
return View();
}
}
在這個時候我想要這個。
public void LoginTest()
{
var controller = new logInController();
var loginmodel = new logInModel
{
Username = "arwinortiz",
Password = "123456"
};
FormsAuthentication.SetAuthCookie(loginmodel.Username, false);
var result = (RedirectToRouteResult)controller.Index(loginmodel);
result.RouteValues["action"].Equals("index");
result.RouteValues["controller"].Equals("home");
Assert.AreEqual("index", result.RouteValues["action"]);
Assert.AreEqual("home", result.RouteValues["controller"]);
}
向我們展示您的嘗試,我們不打算爲您建立整個模型。 –
你需要從控制器中抽取出分貝數據。只是說... –