Angular 库包括存根和测试帮助文件
Angular library include stubs and testing helper files
我有一个简单的 Angular 库供内部使用,带有一些管道和指令,该库用于多个项目。
当开发人员需要编写单元测试时,他们会为管道创建存根文件。他们在 5 个项目中有相同的存根,总是重复相同的代码。
我想要做的是为管道或指令提供这个存根文件,类似于 RouterTestingModule
所做的,包括测试模块或将存根本身包含在我的库中,但我没有不知道怎么做。
我是否必须创建一个 LibraryTestingModule
并将其包含在主 public_api
中并将其包含在 LibraryModule
中,这有意义吗?
我解决这个问题的方法如下:
在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
。
我有一个简单的 Angular 库供内部使用,带有一些管道和指令,该库用于多个项目。 当开发人员需要编写单元测试时,他们会为管道创建存根文件。他们在 5 个项目中有相同的存根,总是重复相同的代码。
我想要做的是为管道或指令提供这个存根文件,类似于 RouterTestingModule
所做的,包括测试模块或将存根本身包含在我的库中,但我没有不知道怎么做。
我是否必须创建一个 LibraryTestingModule
并将其包含在主 public_api
中并将其包含在 LibraryModule
中,这有意义吗?
我解决这个问题的方法如下:
在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
。