Entity framework 如何使用Rhinomock测试GetEntityByName<;T>;功能?这是可能的还是良好的做法?
我有一个使用反射的方法,通过名称来获取通用类型的实体Entity framework 如何使用Rhinomock测试GetEntityByName<;T>;功能?这是可能的还是良好的做法?,entity-framework,unit-testing,generics,reflection,rhino-mocks,Entity Framework,Unit Testing,Generics,Reflection,Rhino Mocks,我有一个使用反射的方法,通过名称来获取通用类型的实体 public T GetEntity<T>( string name ) where T : EntityBase { return GetDbSet<T>().FirstOrDefault( x => x.Name == name ); } public class EntityBase : IEntityBase { [Key] public int ID {get;set;}
public T GetEntity<T>( string name ) where T : EntityBase
{
return GetDbSet<T>().FirstOrDefault( x => x.Name == name );
}
public class EntityBase : IEntityBase
{
[Key]
public int ID {get;set;}
public string Name {get;set;}
}
public T GetEntity(字符串名称),其中T:EntityBase
{
返回GetDbSet().FirstOrDefault(x=>x.Name==Name);
}
公共类EntityBase:IEntityBase
{
[关键]
公共int ID{get;set;}
公共字符串名称{get;set;}
}
还有许多实体继承自EntityBase
有人能告诉我们如何使用Rhinomock测试这个方法以及类似的泛型类型和反射方法吗?或者测试这类方法是一个好主意吗?您必须模拟GetDBSet。@RobertHarvey是的,我的问题是如何处理泛型T。如果有20个实体继承自EntityBase,我是否必须编写20个测试?仅当您具有特定于给定T的行为时。否则,只需注入EntityBase模拟。另外,如果被测试的方法是实体框架方法,我就不会费心去测试它了。而是依靠您的集成测试来验证正确的功能。@RobertHarvey它落后了。除了在所有实体中循环外,找不到任何合适的方法来测试它,而且似乎毫无意义。。。我想我现在得离开了。谢谢你的帮助。@WinterWinter你的例子中的反映在哪里?您能展示一下
GetDbSet()
方法的实现吗?