Я хочу обернуть фрагмент кода, который использует API-интерфейс для олицетворения Windows, в аккуратный небольшой вспомогательный класс, и, как обычно, я ищу способ пройти тест-во-первых. Однако, хотя WindowsIdentity является управляемым классом, вызов LogonUser, который необходим для фактического выполнения входа в систему как другого пользователя, является неуправляемой функцией в файле advapi32.dll.Можно ли тестировать класс, который вызывает вызовы P/Invoke?
Я думаю, что могу обойти это, представив интерфейс для моего вспомогательного класса для использования и скрытия вызовов P/Invoke в реализации, но тестирование этой реализации по-прежнему будет проблемой. И вы можете себе представить, что фактическое выполнение олицетворения в тесте может быть немного проблематичным, учитывая, что пользователю действительно необходимо существовать в системе.
Это подход, который я взял, и я доволен им. Тем не менее, я все еще хочу, чтобы был способ проверить, что мой конкретный класс «делает правильные вещи», когда он вызывает Win32 api. :) – Rytmis 2008-10-31 11:24:08
Существует. Это называется интеграционным тестированием. – nathanchere 2014-04-02 01:01:47