Re: юниттест отражения .Net
От: ulu http://sm-art.biz
Дата: 14.03.11 11:18
Оценка:
Все очень просто -- надо создать в тестовой сборке класс, имплементирующий 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>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.