Windows Impersonation API를 사용하는 코드 조각을 청결한 작은 도우미 클래스로 포장하고 평소와 같이 먼저 테스트 우선 테스트 방법을 찾고 있습니다. 그러나 WindowsIdentity는 관리되는 클래스이지만 다른 사용자로 실제로 로그인하는 데 필요한 LogonUser 호출은 advapi32.dll에서 관리되지 않는 함수입니다.P/Invoke 호출을하는 클래스를 단위 테스트 할 수 있습니까?
필자는 도우미 클래스에 대한 인터페이스를 도입하여 구현에서 P/Invoke 호출을 사용하지 않고 숨길 수 있다고 생각하지만이 구현을 테스트하는 것은 여전히 문제가됩니다. 그리고 실제로 사용자가 실제로 시스템에 존재해야한다는 것을 감안할 때 테스트에서 가장을 수행하는 것이 약간 문제가 될 수 있다고 상상할 수 있습니다.
이것은 제가 취한 접근법이며, 나는 그것에 만족합니다. 그러나, 나는 여전히 Win32 API를 호출 할 때 나의 구체적인 클래스가 "올바른 일을하고있다"는 것을 확인하는 방법이 있었으면 좋겠다. :) – Rytmis
있습니다. 이를 통합 테스트라고합니다. – nathanchere
@nathanchere - + 1ed. 시스템 수준 테스트 (수동/수락)의 일부로 적용되는지 확인하십시오. 따라서 'CWinAPIFacade가 고장났습니다.'라는 엣지 경우조차도 일찌기 잡히게됩니다 (물론 자동화는 이상적입니다). – Gishu