对具有IRepository的所有IEntity进行单元测试

用户名

我们大约有300个POCO对象,每个对象都从IEntity接口继承。在我们的服务层中,我们有一个IRepository和一个DbContext,其中为每个POCO类指定了所有EntityTypeConfigurations。

我们正在尝试对它们进行单元测试,以确保映射正确。有没有一种方法可以自动为程序集中的所有IEntity对象调用下面的helper方法。

    internal static void TestRepositoryForEntity<T>(T obj) where T : class, IEntity
    {
      ILogger logger = new Logging.NLog.NLogLogger(null);
      IConnectionProvider connectionProvider = new ConnectionProvider(logger);

      IEntityRepository<T> testRepo = new BaseEntityRepository<T>(connectionProvider);

      var allResults = testRepo.GetAll();
      foreach (var item in allResults)
      {
        Console.WriteLine(item);
      }
    }

目前,我们这样称呼它:

Helpers.EntityContextHelper.TestRepositoryForEntity(new Zinc.Entities.User());

但是,如果我尝试获取所有IEntity对象并在帮助程序中的T类型上传递这些对象,则为IEntity,并且找不到正确类型的映射。

低的

将对象的实例作为参数传递似乎有点奇怪;为什么不删除它,只打电话TestRespositoryForEntity<Zinc.Entities.User>()(如果类型是抽象的怎么办?)如果某个地方有程序集,则可以这样调用通用方法:

var assembly = typeof (User).Assembly;

var typeList = assembly.GetTypes().Where(t => t.IsClass && !t.IsAbstract 
    && typeof (IEntity).IsAssignableFrom(t));

MethodInfo testMethodInfo =
    typeof (Helpers.EntityContextHelper)
    .GetMethod("TestRepositoryForEntity").GetGenericMethodDefinition();


foreach (var type in typeList)
{
    Console.WriteLine("Checking type {0}", type.FullName);
    //we need an instance;
    object instance = Activator.CreateInstance(type);

    //create the correct generic method:
    var testMethodToCall = testMethodInfo.MakeGenericMethod(type);
    //invoke
    testMethodToCall.Invoke(null, new [] { instance });
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

等到所有任务在单元测试中完成

来自分类Dev

进行所有测试后,Python单元测试将运行功能

来自分类Dev

如何对具有数据库访问权限的方法进行单元测试?

来自分类Dev

使用所有参数类型的JS单元测试?

来自分类Dev

缺少单元测试范围,但具有单元测试统计信息

来自分类Dev

使用嘲讽对具有依赖项的类进行单元测试

来自分类Dev

具有无效返回类型的方法的单元测试

来自分类Dev

对具有隔离范围,双向值和ngIf的指令进行单元测试

来自分类Dev

具有类型为vararg参数的Mockito when子句-使用anyVararg进行单元测试

来自分类Dev

如何对具有bind('error',function(){})的角度指令进行单元测试?

来自分类Dev

如何对在try主体中具有系统调用的异常处理程序进行单元测试?

来自分类Dev

单元测试应该模拟所有外部服务吗?

来自分类Dev

API单元测试(测试端点与测试所有内容)

来自分类Dev

ASP.NET MVC5:对具有会话的控制器进行单元测试

来自分类Dev

我应该如何对具有许多子功能的功能进行单元测试?

来自分类Dev

所有单元测试都将Moq抛出BadImageFormatException吗?

来自分类Dev

如何对具有字段注入的类进行单元测试(使用guice)

来自分类Dev

延迟XCTest中所有单元测试的执行

来自分类Dev

在Dart中运行所有单元测试

来自分类Dev

从Visual Studio Code运行所有Flutter单元测试

来自分类Dev

使用嘲讽对具有依赖项的类进行单元测试

来自分类Dev

对具有隔离范围,双向值和ngIf的指令进行单元测试

来自分类Dev

在grails中对RestfulController进行单元测试时,具有默认索引操作的奇怪行为

来自分类Dev

我应该如何对具有许多子功能的功能进行单元测试?

来自分类Dev

如何使用在方法中具有依赖项的moq来对类进行单元测试?

来自分类Dev

对调用所有简单函数的主函数进行单元测试的好方法是什么?

来自分类Dev

如何对具有某种状态条件的函数进行单元测试?

来自分类Dev

使用具有相对路径的文件进行 Visual Studio 单元测试

来自分类Dev

如何对具有多个配置的项目进行单元测试

Related 相关文章

  1. 1

    等到所有任务在单元测试中完成

  2. 2

    进行所有测试后,Python单元测试将运行功能

  3. 3

    如何对具有数据库访问权限的方法进行单元测试?

  4. 4

    使用所有参数类型的JS单元测试?

  5. 5

    缺少单元测试范围,但具有单元测试统计信息

  6. 6

    使用嘲讽对具有依赖项的类进行单元测试

  7. 7

    具有无效返回类型的方法的单元测试

  8. 8

    对具有隔离范围,双向值和ngIf的指令进行单元测试

  9. 9

    具有类型为vararg参数的Mockito when子句-使用anyVararg进行单元测试

  10. 10

    如何对具有bind('error',function(){})的角度指令进行单元测试?

  11. 11

    如何对在try主体中具有系统调用的异常处理程序进行单元测试?

  12. 12

    单元测试应该模拟所有外部服务吗?

  13. 13

    API单元测试(测试端点与测试所有内容)

  14. 14

    ASP.NET MVC5:对具有会话的控制器进行单元测试

  15. 15

    我应该如何对具有许多子功能的功能进行单元测试?

  16. 16

    所有单元测试都将Moq抛出BadImageFormatException吗?

  17. 17

    如何对具有字段注入的类进行单元测试(使用guice)

  18. 18

    延迟XCTest中所有单元测试的执行

  19. 19

    在Dart中运行所有单元测试

  20. 20

    从Visual Studio Code运行所有Flutter单元测试

  21. 21

    使用嘲讽对具有依赖项的类进行单元测试

  22. 22

    对具有隔离范围,双向值和ngIf的指令进行单元测试

  23. 23

    在grails中对RestfulController进行单元测试时,具有默认索引操作的奇怪行为

  24. 24

    我应该如何对具有许多子功能的功能进行单元测试?

  25. 25

    如何使用在方法中具有依赖项的moq来对类进行单元测试?

  26. 26

    对调用所有简单函数的主函数进行单元测试的好方法是什么?

  27. 27

    如何对具有某种状态条件的函数进行单元测试?

  28. 28

    使用具有相对路径的文件进行 Visual Studio 单元测试

  29. 29

    如何对具有多个配置的项目进行单元测试

热门标签

归档