是否可以在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