Все очень просто -- надо создать в тестовой сборке класс, имплементирующий IActionProvider, и затем проверить, правильно ли все происходит.
Вы писали:
A>Только осваиваю юниттестирование. Возникает множество вопросов, например:
A>Как протестировать следующий код? Создавать мокап домена приложений?
A>A> public class ActionProviders
A> {
A> private static readonly Dictionary<string, IActionProvider> _providers = new Dictionary<string, IActionProvider>(StringComparer.InvariantCultureIgnoreCase);
A> static ActionProviders()
A> {
A> Load();
A> }
A> public static void Load()
A> {
A> //TODO TEST MISSING -- how to test it???
A> foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies())
A> {
A> foreach (Type type in assembly.GetTypes())
A> try
A> {
A> if (type.GetInterface(typeof(IActionProvider).FullName) != null)
A> {
A> if (type.GetConstructor(new Type[0]) != null)
A> _providers.Add(type.Name.Replace("Provider", ""), (IActionProvider)Activator.CreateInstance(type));
A> }
A> }
A> catch (TargetInvocationException) { }
A> catch (TypeInitializationException) { }
A> catch (ReflectionTypeLoadException) { }
A> catch (ArgumentNullException) { }
A> catch (ArgumentException) { }
A> }
A> }
A> public static IDictionary<string, IActionProvider> Providers
A> {
A> get { return _providers; }
A> }
A> }
A>