【问题标题】:Angular library include stubs and testing helper filesAngular 库包括存根和测试帮助文件
【发布时间】:2021-02-24 18:35:42
【问题描述】:
我有一个简单的 Angular 库供内部使用,其中包含一些管道和指令,该库用于多个项目。
当开发人员需要编写单元测试时,他们正在为管道创建一个存根文件。他们在 5 个项目中具有相同的存根,总是重复相同的代码。
我想要做的是为管道或指令提供这个存根文件,类似于RouterTestingModule,包括一个测试模块或将存根本身包含在我的库中,但我没有任何线索如何做到这一点。
我是否应该创建一个LibraryTestingModule 并将其包含在主public_api 中,并将其包含在LibraryModule 中,这样有意义吗?
【问题讨论】:
标签:
angular
stub
angular-library
【解决方案1】:
我的解决方法如下:
在src路径的同级,创建testing文件夹。在其中包含下一个文件
/src
/testing
┣ /src
┃ ┣ /stubs // my testing files here
┃ ┗ index.ts
┣ index.ts // barrel file
┣ package.json
┣ public_api.ts // similar to index.ts, entry point for public API of the package
┗ library-testing.module.ts // Angular module
对我来说,这就是诀窍,包括 package.json 内的以下几行
{
"ngPackage": {
"lib": {
"entryFile": "public_api.ts",
}
}
}
有了所有这些,现在我可以使用my-lib/some-pipe.ts 并在测试文件中,现在我可以访问my-lib/testing/some-stub-pipe.ts。