내 Winforms 앱은 현재 프로세스에서 발견 된 그룹 구성원을 기반으로 권한을 설정합니다.다른 사용자로 가장하는 테스트 작성 방법
방금 MSTEST에서 단위 테스트를했습니다.
나는 내가 예상되는 동작을 확인할 수 있습니다 다른 사용자로 실행하고 싶습니다.
는 여기에 내가 가지에 대한 촬영하고있는 무슨이다 :
[TestMethod]
public void SecuritySummaryTest1()
{
Impersonate(@"SomeDomain\AdminUser", password);
var target = new DirectAgentsSecurityManager();
string actual = target.SecuritySummary;
Assert.AreEqual(
@"Default=[no]AccountManagement=[no]MediaBuying=[no]AdSales=[no]Accounting=[no]Admin=[YES]", actual);
}
[TestMethod]
public void SecuritySummaryTest2()
{
Impersonate(@"SomeDomain\AccountantUser", password);
var target = new DirectAgentsSecurityManager();
string actual = target.SecuritySummary;
Assert.AreEqual(
@"Default=[no]AccountManagement=[YES]MediaBuying=[no]AdSales=[no]Accounting=[YES]Admin=[NO]", actual);
}
을 내가 정확히 하나 개의 클래스의 속성을 테스트하고있어 비록? 오버라이드하는 o/s 보안 서브 시스템에 대한 종속성이 있다는 사실입니까? –
@ LasseV.Karlsen. 왜 사용자를 가장하는 것이 단위 테스트가되지 않는지 설명 할 수 있습니까? 사용자에게 사용 권한이 없을 때 실패해야하는 방법이있는 경우 코드 적용 범위를 달성하기 위해 해당 시나리오에 대한 단위 테스트를하고 싶습니다. – Mashmagar
도메인/서버에 사용자가 있거나, 사용자가 여전히 활성화되어 있고, 비밀번호가 여전히 올바른 것처럼 주변 환경에 의존하고 있습니다. 대신, 테스트중인 코드가 액세스 할 수 있도록 권한을 검색하는 부분을 조롱하십시오. 사용자를 가장하지 않고도 테스트 할 수 있습니다.환경에 의존하는 모든 테스트 (즉, 코드 외부의 것)는 유닛 테스트가 아닌 통합 테스트입니다. –