Ответ 1
Посмотрите на NBuilder. Это позволяет создавать тестовые объекты со случайными данными, увеличивающимися значениями и всем, что вы, возможно, придумаете. Все через хороший свободный интерфейс.
Я использую С#, а для модульного тестирования и тестирования интеграции обычно нужно заполнять поля автоматически на основе атрибутов.
Допустим, мы проверим, можем ли мы писать и возвращать пользовательские данные в базу данных.
Есть ли какая-либо инфраструктура, которая автоматически заполняет пользователя тестовыми данными и проверяет, имеют ли два объекта одинаковые значения?
Пример кода может понравиться
User user = new User();
AutoPopulator.Populate(user);
user.Save();
Посмотрите на NBuilder. Это позволяет создавать тестовые объекты со случайными данными, увеличивающимися значениями и всем, что вы, возможно, придумаете. Все через хороший свободный интерфейс.
Вы можете найти это актуальным. Вот список нескольких других фреймворков на сегодняшний день:
Хорошо известно и уважаемо:
Малоизвестная:
Незнакомые:
Да, есть. Я нашел это, наблюдая за сеансом № 3 Summer of NHibernate от Стивен Болен.
Его компания Microdesk разработала утилиту, которая позволит вам сохранить состояние базы данных при построении тестовой сборки, установить состояние базы данных в начале каждого теста и восстановить исходное состояние базы данных при деконструкции тестового устройства.
Загрузите утилиту здесь: Microdesk.Utility.UnitTest
В учебном пособии о том, как его использовать, просмотрите видеоролик Summer of NHibernate # 3.
Fluent NHibernate имеет функцию, которая дает вам все, что вам нужно, за исключением части с автопопуляцией:
Ссылка: http://wiki.fluentnhibernate.org/Persistence_specification_testing
Однако, учитывая С# с кодовыми контрактами, было бы нелегко автоматически создавать магические объекты с использованием отражения.