[英]Testing a windows authenticated Action method
我正在為動作方法編寫單元測試,並在動作方法中得到以下錯誤。
EntityFramework.dll中發生類型'System.InvalidOperationException'的異常,但未在用戶代碼中處理
附加信息:未找到具有不變名稱'System.Data.SqlClient'的ADO.NET提供程序的實體框架提供程序。 確保提供程序已在應用程序配置文件的“ entityFramework”部分中注冊。
方法
public ActionResult Index()
{
var user = db.UserRight.FirstOrDefault(x => x.UserCode == User.Identity.Name);
ViewBag.UserName = user.UserName;
return View("Index");
}
測試方法
[TestMethod]
public void Home()
{
var controller = new HomeController();
var result = controller.Index() as ViewResult;
Assert.AreEqual("Index", result.ViewName);
}
我如何通過測試方法傳遞用戶的值,以使測試不會引發任何錯誤。
確保您在測試項目的app.config文件中具有來自web.config的<entityFramework ...>部分。
看到您的問題已得到回答,我只想提一點建議-您幾乎永遠不要嘗試測試您的操作。 這是一個不好的做法-難以實現(您應該考慮所有模擬)並且帶來的價值很小。 將您的業務邏輯放在服務/助手中並對其進行測試。 因此,在您的情況下,我寧願擁有:
var user = UserService.GetUserByName(User.Identity.Name);
然后,我將對該服務方法進行單元測試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.