Lui*_*Rol 5 javascript node.js typescript nestjs
有没有办法自动提供所有@Global模块到一个TestModule?(即无需导入它们,与主应用程序的工作方式相同)
到目前为止,我必须确保将任何全局模块插入到import我的调用列表中:
await Test.createTestingModule({
imports: [
GlobalModule1,
GlobalModule2
Run Code Online (Sandbox Code Playgroud)
全局模块总是必须导入一次,它们的提供者才能在全球范围内使用。这适用于测试和主应用程序,请参阅文档。
全局模块只能注册一次,最好是由根或核心模块注册。之后,
CatsService提供程序将无处不在,但CatsModule不会被导入。
所以没有办法导入它们。您可以通过创建一个CommonsModule导入所有全局模块的方法来简化它。然后,您可以CommonsModule在您AppModule和您的测试中导入而不是每个模块。
但请注意,拥有大量全局依赖项是一种代码异味。此外,在单元测试中,您通常希望将类与任何其他依赖项隔离开来。如果您导入全局模块,您将针对实际提供程序进行测试。
让一切都全球化并不是一个好的决定。全局模块可用于减少必要的样板文件数量。导入数组仍然是使模块 API 透明的最佳方式。
| 归档时间: |
|
| 查看次数: |
1542 次 |
| 最近记录: |