Как проверить мои вызовы из репозитория linq - PullRequest
0 голосов
/ 16 августа 2011

У меня есть следующий UserRepository:

public class UserRepository : Repository<Entities.User> {

public Entities.IUser Find(string domain, string username, string password) {
            return (from u in FindAll()
                    where u.Account.SubDomain == domain && u.EmailAddress == username && u.PasswordHash == password
                    && !u.IsArchived
                    select u).FirstOrDefault();
        }
}

Метод «FindAll» является частью репозитория и в основном просто вызывает context.GetTable (). AsQueryable ()

Я хочу бытьвозможность написать тест, который будет вызывать этот метод хранилища, но вместо доступа к базе данных использовать некоторое хранилище в памяти.

Я много занимался поиском, и все, что мне кажется, натолкнулось на то, чтобы вычистить хранилище и вернуть список (обычно создаваемый в начале модульного теста), но я не понимаю, чтоиспользовать это.Я хочу убедиться, что написанный мной запрос linq на самом деле правильно фильтрует объекты и извлекает только необходимые записи.Поскольку DataContext не имеет интерфейса, я не могу просто его смутить.

Единственный другой способ, которым я могу увидеть обработку этого, - это на самом деле разговаривать с БД, но я знаю, что это не главноемодульное тестирование.

Мой вопрос: как другие справились с этим?

Ответы [ 2 ]

1 голос
/ 18 августа 2011

Благодаря последнему комментарию @Daniel Higarths, где он упомянул Moles, это помогло мне решить проблему вместе со следующим видео http://dimecasts.net/Content/WatchEpisode/170

1 голос
/ 16 августа 2011

Вам не нужен интерфейс для насмешек.Вы можете легко создать макет из DataContext и передать его в свой репозиторий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...