我有以下接口。由于T是通用的,我不确定如何使用Moq来模拟IRepository。我确信有一种方法,但我没有通过在这里或谷歌搜索找到任何东西。有人知道我能做到吗?使用moq来模拟具有通用参数的类型
我对Moq相当陌生,但可以看到花时间学习它的好处。
/// <summary>
/// This is a marker interface that indicates that an
/// Entity is an Aggregate Root.
/// </summary>
public interface IAggregateRoot
{
}
/// <summary>
/// Contract for Repositories. Entities that have repositories
/// must be of type IAggregateRoot as only aggregate roots
/// should have a repository in DDD.
/// </summary>
/// <typeparam name="T"></typeparam>
public interface IRepository<T> where T : IAggregateRoot
{
T FindBy(int id);
IList<T> FindAll();
void Add(T item);
void Remove(T item);
void Remove(int id);
void Update(T item);
void Commit();
void RollbackAllChanges();
}