是否可以在Team System Test中配置單元測試以在特定標識(類似runas)下運行?Team System Test是否支持在特定身份下運行測試?
1
A
回答
0
雖然我不知道它是什麼(我不這麼認爲),但您應該認真考慮您的代碼是否可以推廣到與接口對接,而不是依賴當前的WindowsIdentity。
這使得您的代碼變得更加靈活,並且使得單元測試更簡單,因爲您可以將任何IPrincipal實現(例如GenericPrincipal)分配給Thread.CurrentPrincipal。只要記住在每個測試用例之後進行適當的Fixture Teardown。這是我們從測試套件的一個典型的例子:
[TestClass]
public class AuditServiceTest
{
private IPrincipal originalPrincipal;
public AuditServiceTest()
{
this.originalPrincipal = Thread.CurrentPrincipal;
}
[TestCleanup]
public void TeardownFixture()
{
Thread.CurrentPrincipal = this.originalPrincipal;
}
[TestMethod]
public void SomeTest()
{
Thread.CurrentPrincipal =
new GenericPrincipal(
new GenericIdentity("Jane Doe", null));
// More test code
}
}
這就是說,存在假冒的「單位」測試可能會被擔保的情況。我在MSTest中看到的這種做法是通過在測試用例中編寫顯式模擬代碼。
0
看起來團隊測試看起來不像這樣。我最終編寫了我的單元測試以模擬用於調用LogonUser Win32 API的用戶using this包裝。
現在我的單元測試,像這樣:
[TestMethod]
public void Assert_Access_Denied()
{
bool denied = false;
using (new Impersonator("SomeValidUserWithNoAccess", "SomeTestDomain", "SomeTestPassword"))
{
try
{
// access some method that performs windows auth
}
catch (UnauthorizedAccessException exc)
{
denied = true;
}
}
Assert.IsTrue(denied);
}
相關問題
- 1. Visual Studio Test Essentials/Test Runner是否運行web&load測試?
- 2. Zuul是否支持OAuth身份驗證?
- 3. 在Build Definition Team Foundation Server 2015中運行/排除特定測試
- 4. sbt test-only特定測試
- 5. Visual Studio測試運行器是否支持其他框架?
- 6. 爲什麼ReSharper本身不支持Xunit與測試運行器?
- 7. 確定是否瀏覽器支持集成的身份驗證
- 8. SWT測試是否支持瀏覽器
- 9. hudson - 僅在特定分支代碼更改時運行測試
- 10. 運行NUnit是否可能針對特定(長)測試列表
- 11. 在Win7上以SYSTEM身份運行時寫入temp dir失敗
- 12. 運行特定測試用例在Django
- 13. Visual Studio Team System和Team Foundation Server是否有其他選擇?
- 14. hibernate是否支持運行MERGE語句?
- 15. nodejs是否支持運行時依賴?
- 16. 在工作組上正確設置Team System Load Test Agent
- 17. 檢測是否支持SSL
- 18. Webdriver不支持以其他用戶身份運行
- 19. 正在測試的身份不同於測試是否在一個元組中?
- 20. KIF命令行支持在真實設備上運行測試
- 21. 流利的NHibernate是否支持「觸發器身份」
- 22. 「devise_token_auth」gem是否支持基於Web的身份驗證?
- 23. Rest客戶端是否支持NTLM身份驗證?
- 24. Meteor項目是否考慮添加Persona身份驗證支持?
- 25. HoTMaiL或Windows Live ID是否支持OpenID身份驗證?
- 26. Greenplum是否支持其節點之間的Kerberos身份驗證?
- 27. Mono \ Xamarin是否支持基本身份驗證?
- 28. WSO2身份認證服務器是否支持OpenId Connect Discovery
- 29. Phoenix框架是否支持Windows身份驗證?
- 30. System.Net.Mail.SmtpClient是否支持CRAM-MD5身份驗證?
嗨,馬克 - 尼斯迴應! 對於我的特殊場景,我正在做一個Intranet站點,我在IE中使用Kerberos身份驗證,並且ASP.Net使用模擬代表用戶代表用戶訪問SQL。所以我不認爲通用原則適用於我的情況。 – 2009-11-25 15:46:03
沒錯 - 這就是爲什麼我把這個小小的警告寫在最後:) – 2009-11-25 16:09:05