Как выполнить модульное тестирование функции NextPasswordChangeDate в Active Directory - PullRequest
0 голосов
/ 26 мая 2009

Я интенсивно работаю над проектом, использующим Active Directory. Я настроил несколько модульных тестов для нескольких вещей против AD, некоторые из которых я достигаю, используя фиктивные объекты, некоторые из которых я достигаю с помощью реальных вызовов против AD.

В качестве одной из функций моего проекта я должен получить так называемый «профиль пользователя». Этот профиль пользователя состоит в основном из простых атрибутов, таких как «cn», «company», «employeeid» и т. Д. Однако одно свойство, которое я пытаюсь заполнить, не является простым «NextPasswordChangeDate».

Насколько мне известно, единственный способ получить это - получить maxPwdAge политики домена и использовать эту информацию вместе с pwdLastSet.

Теперь мой вопрос: как я могу провести интеллектуальное тестирование? Я придумал три варианта, каждый из которых не очень хорош:

  1. Используйте мою учетную запись в качестве поисковой, найдите дату другим способом и жестко запишите ее в модульном тесте. Таким образом, я могу хорошо тестировать мой код модулем, но каждый месяц мне приходится менять модульный тест, потому что я менял свой пароль.
  2. Использовать учетную запись, для которой пароль никогда не истекает. Это бессмысленно, потому что я не могу проверить правильность своего кода.
  3. Используйте фиктивный объект и убедитесь, что происходят правильные вызовы API. Эта опция позволяет проверить правильность поведения функции, но тогда проверенная логика фактически находится в модульном тесте, и, следовательно, я не могу быть уверен, что она работает правильно, даже если тест пройден.

Какой из трех вы предлагаете? Или, может быть, у вас есть лучший вариант?

1 Ответ

0 голосов
/ 26 мая 2009

Начиная с 1 и 2, доверие к AD, имеющему и имеющему известные значения, для меня больше похоже на интеграционные тесты.

Обычно я придерживаюсь той стороны, что любое недетерминированное поведение должно быть сопряжено и по возможности смоделировано (# 3). Как вы заметили, это всегда оставляет реальный код реализации, который не подлежит модульному тестированию, но затем будет охватываться вашими интеграционными тестами, работающими на известной системе AD.

Смежные вопросы / ответы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...