nestjs typeorm 实体 class 中的代码覆盖问题
code coverage issue in entity class in nestjs typeorm
我为 Nest 编写了很多模块。js/TypeORM 但我从未遇到实体 class 的代码覆盖问题。在我的 class 中,我们有 ManyToOne
的映射。现在代码覆盖率显示此行未被覆盖。
我是否需要为实体 class 编写单独的测试文件,就像我们为控制器和服务 class 编写的那样?还有什么方法可以在我的控制器或服务测试文件中容纳实体 class 的测试?有什么办法可以解决这个问题吗?
就个人而言,我会忽略实体和 DTO 文件的代码覆盖率。它们实际上只是具有元数据的接口,并且 通常 除了可能延迟加载 class 实例之外不包含任何逻辑,以便它可以在运行时正确读取。
如果您要对这些文件进行代码覆盖,您可以执行以下两项操作之一
将延迟加载函数移到它自己的文件中,以便您可以直接调用它并“触发”该函数,从而提供覆盖率
进行实际与数据库对话的集成测试,以便 TypeORM 读取元数据并覆盖装饰器。
你可以看到第一个选项的例子
我为 Nest 编写了很多模块。js/TypeORM 但我从未遇到实体 class 的代码覆盖问题。在我的 class 中,我们有 ManyToOne
的映射。现在代码覆盖率显示此行未被覆盖。
我是否需要为实体 class 编写单独的测试文件,就像我们为控制器和服务 class 编写的那样?还有什么方法可以在我的控制器或服务测试文件中容纳实体 class 的测试?有什么办法可以解决这个问题吗?
就个人而言,我会忽略实体和 DTO 文件的代码覆盖率。它们实际上只是具有元数据的接口,并且 通常 除了可能延迟加载 class 实例之外不包含任何逻辑,以便它可以在运行时正确读取。
如果您要对这些文件进行代码覆盖,您可以执行以下两项操作之一
将延迟加载函数移到它自己的文件中,以便您可以直接调用它并“触发”该函数,从而提供覆盖率
进行实际与数据库对话的集成测试,以便 TypeORM 读取元数据并覆盖装饰器。
你可以看到第一个选项的例子