0
說我有一個控制器,看起來像下面的一個,我從數據庫中獲取一些項目,並將它們添加到分頁列表中。我將如何去編寫一個單元測試呢?我似乎無法找到任何關於此的好材料。ASP MVC單元測試分頁列表
控制器:
public class ErrorController : Controller
{
public ErrorModel Errors { get; set; }
public List<ErrorModel> ErrorList { get; set; }
public ActionResult Error(int? page)
{
string cs = "Data Source=" + "some\\path";
using (SQLiteConnection con = new SQLiteConnection(cs))
{
var listOfErrors = new List<ErrorModel>();
string stm = "SELECT * FROM Error WHERE Checked == 'False'";
con.Open();
using (SQLiteCommand cmd = new SQLiteCommand(stm, con))
{
using (SQLiteDataReader rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
listOfErrors.Add(new ErrorModel
{
Id = rdr["ID"].ToString(),
Type = rdr["Type"].ToString(),
});
}
rdr.Close();
ErrorList = listOfErrors;
}
}
con.Close();
}
// stuff for paging
int pageSize = 10;
int pageNumber = (page ?? 1); // if there is no page, return page 1
return View(ErrorList.ToPagedList(pageNumber, pageSize));
}
我目前,顯然不充足的單元測試:
[TestClass]
public class ErrorControllerTest
{
[TestMethod]
public void TestErrorView()
{
var controller = new ErrorController();
var result = controller.Error(1) as ViewResult;
Assert.AreEqual("Error", result.ViewName);
}
}
任何提示不勝感激。
如果您希望爲單元測試提供一些儘可能真實的用例,請嘗試此項目https://odetofood.codeplex.com/。它包含一個應用程序,它支持測試,因此您可以瞭解如何對單元測試控制器和其他位/ bob進行單元測試。 –