Я сказал бы, что модульные тесты являются помощью программистов ответить на вопрос:
этот код делает то, что я думаю, что он делает?
Это - вопрос, который они должны задать сами много. Программистам нравится автоматизировать что-либо, что они делают много, где они могут.
отдельная тестовая команда должна ответить на другой question:-
, эта система делает то, что я (и конечные пользователи) ожидаю, что это сделает? Или это удивляет меня?
существует целый крупный класс ошибок, связанных с программистом или разработчиками, имеющими другую идею о том, что корректно, что модульные тесты никогда не будут погрузка.
Что ж, я нашел решение. Оказывается, я искал не то. Вместо «Выбрать пользователей или группы» правильнее искать «Средство выбора объектов Active Directory». ADOP - это обычный диалог, который используется для выбора любого объекта из Active Directory, включая пользователей, группы, компьютеры и т. Д. Так уж получилось, что это диалоговое окно чаще всего называется «Выбрать пользователей или группы».
Для всех, кто столкнулся с этой проблемой, я размещаю ссылку на проект CodePlex, Active Directory Common Dialogs .NET , который предоставляет очень простую в использовании оболочку .NET для этот диалог. Делает его таким же простым в использовании, как и любое другое обычное диалоговое окно .NET:
Для тех из вас, кто работает в 64-битной операционной системе, или более современная операционная система (Win2k8 +), вы можете столкнуться со сбоем после выбора пользователей или групп и выбора ОК. Решение проблемы здесь:
http://www.codeplex.com/ADUI/Thread/View.aspx?ThreadId=38047
Надеюсь, это поможет любому, кто искал / искал то же самое.
http://adui.codeplex.com/ - это хорошая реализация, но в ней есть утечка памяти, которую я не мог удалить. Если вы воспользуетесь им и попытаетесь открыть диалоговое окно средства выбора рекламы несколько раз, вы получите исключение AccessViolationException для чтения / записи в память. Это плохой знак.
Я использовал другую оболочку из здесь . Это должно быть немного изменено в коде, но AccessViolationExceptions.