Come posso testare unitamente il mio repository generico?
Codice test unità:
[TestClass]
public class UnitTestLanguage
{
private IUnityContainer _unityContainer;
private IUnitOfWork _uow;
private IGenericRepository<Language> _languageRepository;
[TestInitialize]
public void TestInitialize()
{
_unityContainer = new UnityContainer();
_uow = _unityContainer.Resolve<UnitOfWork>();
_languageRepository = _uow.GetRepository<Language>();
}
[TestCleanup]
public void TestCleanup()
{
_uow = null;
_unityContainer = null;
_languageRepository = null;
}
[TestMethod]
public void TestMethodInsertLanguage()
{
var newLanguage = new Language { Name = "test_language" };
_languageRepository.Insert(newLanguage);
var insertedRowCount = _uow.SaveChanges();
var insertedLanguage = _languageRepository.Find(newLanguage.Id);
_languageRepository.Delete(newLanguage);
var deletedRowCount = _uow.SaveChanges();
Assert.AreEqual(insertedLanguage.Name, newLanguage.Name);
Assert.AreEqual(1, insertedRowCount);
Assert.AreEqual(1, deletedRowCount);
}
}
Uso qualcosa come sopra. Ma non so che questo è il modo corretto di testare il repository. Non riesco a trovare tutorial / articoli utili. Come dovrebbero essere i test unitari con le operazioni CRUD del repository generico?