thd*_*thd 2 c# generics unit-testing repository repository-pattern
我有以下用于单元测试的存储库:
public class MyTestRepository<T>
{
private List<T> entities = new List<T>();
public IQueryable<T> Entities
{
get { return entities.AsQueryable(); }
}
public T New()
{
//return what here???
}
public void Create(T entity)
{
entities.Add(entity);
}
public void Delete(T entity)
{
entities.Remove(entity);
}
}
Run Code Online (Sandbox Code Playgroud)
我在New()方法中返回什么?
我试过这个:
public T New()
{
return (T) new Object();
}
Run Code Online (Sandbox Code Playgroud)
但是当我运行我的单元测试时,这给了我以下异常:
System.InvalidCastException: Unable to cast object of type 'System.Object' to type 'MyCustomDomainType'.
Run Code Online (Sandbox Code Playgroud)
有关如何实现New()方法的任何想法?
Meh*_*ari 10
您可以为Ttype参数添加约束:
public class MyTestRepository<T> where T : new()
Run Code Online (Sandbox Code Playgroud)
并return new T();在方法中.
| 归档时间: |
|
| 查看次数: |
394 次 |
| 最近记录: |