Мне было интересно, что я должен проверить и как я должен протестировать IRepository.Тестирование репозитория интерфейса
В настоящий момент я создал MemoryRepository в своем домене, и я тестирую это с использованием поддельных данных. Я не уверен, что это правда. Чувствует себя немного странно, чтобы сначала создать некоторые данные, а затем проверить, правильно ли репозиторий вернет его.
Это то, что мой MemoryRepository выглядит следующим образом:
public class MemoryRepositoryUser : IRepositoryUser
{
List<User> fakeUsers;
public MemoryRepositoryUser(List<User> fakeUsers)
{
this.fakeUsers = fakeUsers;
}
public IEnumerable<User> GetAll()
{
return fakeUsers;
}
public User GetById(string id)
{
return GetAll().Where(u => u.Username == id).Single();
}
}
Вот некоторые тесты я писал:
[TestFixture]
class TestMemoryRepositoryUser
{
private MemoryRepositoryUser repository;
public TestMemoryRepositoryUser(){
repository = new MemoryRepositoryUser(FakeData.GetFakeUsers());
}
[Test]
public void Get_All_Users()
{
var Users = repository.GetAll();
Assert.IsNotNull(Users);
Assert.IsInstanceOf(typeof(IEnumerable<User>), Users);
Assert.AreEqual(3, Users.Count());
}
[Test]
public void Get_User_By_ID()
{
var Username = "Bob";
var User = repository.GetById(Username);
Assert.IsNotNull(User);
Assert.AreEqual(Username, User.Username);
}
}
Я довольно новыми для тестирования кода, и я в основном возникают проблемы с тем, что я должен проверить , Я думаю, что тестирование MemoryRepository помогает мне создавать все функции, которые мне нужны в интерфейсе, без необходимости разговаривать с базой данных?
Duplicate: http://stackoverflow.com/questions/406731/whats-the-point-of-testing-fake-repositories – bzlm
Я не думаю, что это дубликат, это действительно обратный другой вопрос. –