Скучно или нет, я думаю, что вы на правильном пути. Я предполагаю, что вы создаете fakeRepository, который является конкретной реализацией вашего IRepository, который, в свою очередь, внедряется в ваш сервисный уровень. Это хорошо, потому что в какой-то момент в будущем, когда вы будете довольны формой ваших сущностей и поведением ваших сервисов, контроллеров и представлений, вы сможете протестировать свои настоящие репозитории, которые будут использовать базу данных для сохранения этих сущностей. , Конечно, природа этих тестов будет интеграционными, но не менее важными, если не более.
Одна вещь, которая может быть менее скучной для вас, когда придет время для создания ваших реальных репозиториев, - если вы используете nHibernate для своей настойчивости, вы сможете позволить nhibernate генерировать вашу базу данных после того, как вы создадите карты nhibernate для ваших объектов, предполагая, что не нужно использовать устаревшую схему.
Например, у меня есть следующий метод, который вызывается моей SetUpFixture для генерации моей схемы БД:
public class SchemaBuilder
{
public static void ExportSchema()
{
Configuration configuration = new Configuration();
configuration.Configure();
new SchemaExport(configuration).Create(true, true);
}
}
и мой SetUpFixture выглядит следующим образом:
[SetUpFixture]
public class SetUpFixture
{
[SetUp]
public void SetUp()
{
SchemaBuilder.ExportSchema();
DataLoader.LoadData();
}
}
, где DataLoader отвечает за создание всех моих начальных данных и тестовых данных с использованием реального хранилища.
Возможно, это не отвечает на ваши вопросы, но я надеюсь, что это поможет вам убедить вас в подходе.
Грег