Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 如何使用Rhinomock测试GetEntityByName<;T>;功能?这是可能的还是良好的做法?_Entity Framework_Unit Testing_Generics_Reflection_Rhino Mocks - Fatal编程技术网

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()
方法的实现吗?