По поводу «откуда брать данные для объектов — заполнять руками в конструкторах для тестов или как?»
Базу забить можно и автоматически, генерируя объекты/записи со сколько-нибудь адекватными данными. Строки можно генерировать либо просто случайные, либо по словарю, либо — библиотеками для генерации псевдоосмысленных строк (на хабуро недавно пролетала такая в q&a, кажется).
Другое дело, что в тестах вам нужно тестировать поведение кода при определенных условиях, а значит — нужно прямо в них класть в базу то, что будете тестировать. С учетом граничных условий, обработки ошибок и т.д. Следовательно, надо либо прописывать вручную то, что должно попасть в базу перед тестом, либо, если в тесте нужен большой объем данных — сгенерировать его заранее, и переносить, например, из подготовленного xml/json в тестовую базу.