nestjs typeorm 实体 class 中的代码覆盖问题

code coverage issue in entity class in nestjs typeorm

我为 Nest 编写了很多模块。js/TypeORM 但我从未遇到实体 class 的代码覆盖问题。在我的 class 中,我们有 ManyToOne 的映射。现在代码覆盖率显示此行未被覆盖。

我是否需要为实体 class 编写单独的测试文件,就像我们为控制器和服务 class 编写的那样?还有什么方法可以在我的控制器或服务测试文件中容纳实体 class 的测试?有什么办法可以解决这个问题吗?

就个人而言,我会忽略实体和 DTO 文件的代码覆盖率。它们实际上只是具有元数据的接口,并且 通常 除了可能延迟加载 class 实例之外不包含任何逻辑,以便它可以在运行时正确读取。

如果您要对这些文件进行代码覆盖,您可以执行以下两项操作之一

  1. 将延迟加载函数移到它自己的文件中,以便您可以直接调用它并“触发”该函数,从而提供覆盖率

  2. 进行实际与数据库对话的集成测试,以便 TypeORM 读取元数据并覆盖装饰器。

你可以看到第一个选项的例子