Я интенсивно работаю над проектом, использующим Active Directory. Я настроил несколько модульных тестов для нескольких вещей против AD, некоторые из которых я достигаю, используя фиктивные объекты, некоторые из которых я достигаю с помощью реальных вызовов против AD.
В качестве одной из функций моего проекта я должен получить так называемый «профиль пользователя». Этот профиль пользователя состоит в основном из простых атрибутов, таких как «cn», «company», «employeeid» и т. Д. Однако одно свойство, которое я пытаюсь заполнить, не является простым «NextPasswordChangeDate».
Насколько мне известно, единственный способ получить это - получить maxPwdAge политики домена и использовать эту информацию вместе с pwdLastSet.
Теперь мой вопрос: как я могу провести интеллектуальное тестирование? Я придумал три варианта, каждый из которых не очень хорош:
- Используйте мою учетную запись в качестве поисковой, найдите дату другим способом и жестко запишите ее в модульном тесте. Таким образом, я могу хорошо тестировать мой код модулем, но каждый месяц мне приходится менять модульный тест, потому что я менял свой пароль.
- Использовать учетную запись, для которой пароль никогда не истекает. Это бессмысленно, потому что я не могу проверить правильность своего кода.
- Используйте фиктивный объект и убедитесь, что происходят правильные вызовы API. Эта опция позволяет проверить правильность поведения функции, но тогда проверенная логика фактически находится в модульном тесте, и, следовательно, я не могу быть уверен, что она работает правильно, даже если тест пройден.
Какой из трех вы предлагаете? Или, может быть, у вас есть лучший вариант?