簡體   English   中英

測試Windows身份驗證的Action方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM