我有一個測試,需要我使用身份驗證來檢查,看看用戶是否已執行其任務之前登錄和身份驗證。身份驗證可編程登錄c#
我是否可以從單元測試中設置身份驗證,以愚弄/嘲笑主應用程序中的身份驗證以認爲您已被授權並登錄?
我有一個測試,需要我使用身份驗證來檢查,看看用戶是否已執行其任務之前登錄和身份驗證。身份驗證可編程登錄c#
我是否可以從單元測試中設置身份驗證,以愚弄/嘲笑主應用程序中的身份驗證以認爲您已被授權並登錄?
我會在這種情況下做的是有一個方法,需要一個IIdentity實例。然後,您可以使用任何嘲弄的框架(如犀牛嘲笑),以嘲笑的IIdentity,以確保「用戶」登錄或者沒有登錄
public void DoSomething(IIdentity identity)
{
if(identity.IsAuthenticated) ...
}
,然後你的單元測試會是什麼樣子。
[Test]
public void Test()
{
var mockery = new MockRepository();
IIdentity identity = mockery.DynamicMock<IIdentity>();
//perform your test logic here
}
一個解決方案是讓測試機器上的web.config文件擁有authorization
元素設置爲允許所有用戶。這假定您的測試機器和生產機器具有不兼容的Web配置(即,如果您無意中將未驗證的web.config上傳到生產機器,它應該會破壞所有內容,而不是僅僅刪除驗證)。
這可能被認爲是不好的做法...
是的,我可以看到你是如何走近這個,這個問題我使用LINQ to SQL和DoSomething的()將不會允許任何參數,因爲它是: partial void OnCreated() { – Coppermill 2009-06-26 07:37:39