автогенерация тестов для api из интерфейсов
От: Аноним  
Дата: 01.04.12 04:38
Оценка:
Есть сборка с интерфейсами и сборка с классами которые реализуют эти интерфейсы. Один интерфейс могут реализовывать несколько классов. Есть ли что ни будь автоматическое для генерации тестов для таких случаев? Хотелось бы что бы один интерфейс тестировался для нескольких классов.
Re: автогенерация тестов для api из интерфейсов
От: Nuseraro Россия  
Дата: 02.04.12 11:27
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть сборка с интерфейсами и сборка с классами которые реализуют эти интерфейсы. Один интерфейс могут реализовывать несколько классов. Есть ли что ни будь автоматическое для генерации тестов для таких случаев? Хотелось бы что бы один интерфейс тестировался для нескольких классов.


А чем тестите? Почему не написать тест для IMyClass, а потом не прогнать их передавая на место imyclass экземпляры разных классов. К чему автогенерация если есть ООП?
Homo Guglens
Re[2]: автогенерация тестов для api из интерфейсов
От: Аноним  
Дата: 03.04.12 06:03
Оценка:
Здравствуйте, Nuseraro, Вы писали:

N>Здравствуйте, Аноним, Вы писали:


А>>Есть сборка с интерфейсами и сборка с классами которые реализуют эти интерфейсы. Один интерфейс могут реализовывать несколько классов. Есть ли что ни будь автоматическое для генерации тестов для таких случаев? Хотелось бы что бы один интерфейс тестировался для нескольких классов.


N>А чем тестите? Почему не написать тест для IMyClass, а потом не прогнать их передавая на место imyclass экземпляры разных классов. К чему автогенерация если есть ООП?


Так я так и делаю. Использую data driven тесты, к каждому тесту интерфейса идет xml-файл с именами классов. Если честно не очень удобно.
Re[3]: автогенерация тестов для api из интерфейсов
От: Aikin Беларусь kavaleu.ru
Дата: 06.04.12 07:47
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>к каждому тесту интерфейса идет xml-файл с именами классов. Если честно не очень удобно.

К выделеному могу предложить оптимизацию. Можно использовать IoC контейнер с автоматической регистрацией. Тогда код будет выглядеть где-то так (пример StructureMap):

// регистрация
IContainer container = new Container(x => {
                    x.Scan(y => {
                            y.TheCallingAssembly();
                            y.AssemblyContainingType<SomeType>();
                    });   

// использование
var instances = container.GetAllInstances<ISomeTypeInterface>();

foreach (var instance in instances)
    test(instance);


СУВ, Aikin
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.