Ostatnio zacząłem tworzyć aplikację metodą TDD. Zastanawiam się w jaki sposób testujecie taki wzorzec Repository? U mnie interfejs Repository wygląda następująco:
IRepositry<T>{
void Add(T entity);
void Delete(T entity);
void Update(T entity);
List<T> GetAll();
T GetById(int id);
List<T> GetByExpression(Expression<Func<T, bool>> expression);
}
następnie implementuje poszczególne interfejsy.
O ile wiem jak sprawdzić funckje typu Get* (porównuję z mockowanym dummy setem) o tyle nie wiem czy Add/Update/Delete dobrze testuje. W ich przypadku używam metody Verify do sprawdzeina czy funkcje Add/Remove zostały wykonane oraz funckja SaveContext. W przypadku Update sprawdzam również metodę Attach, ale co jeśli element już jest z attachowany? Nie wiem jak to sprawdzić.
Korzystam z C#, Entity Framework, Moq.
Prosiłbym o jakieś porady - czy idę w dobrym kierunku.