Написание модульного теста для метода, возвращающего результат действия

Я сгенерировал тестовый пример для следующего метода; который возвращает результат действия - 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);
Другие вопросы по тегам