Angular中误删组件.spec文件后,如何单独生成该文件(无需额外npm包)
可以单独重新生成Angular组件的.spec文件吗?
当然可以!你遇到的ng g c <component_name> --spec-only无效的问题,是因为这个命令的作用是在创建新组件时只生成.spec文件,而不是给已经存在的组件补生成。不用第三方npm模块的话,有两个简单的方法:
方法一:借助临时组件生成标准模板
这是最省心的方式,利用CLI生成官方标准的spec模板:
- 首先创建一个临时组件,只生成spec文件:
ng g c temp-component --spec-only - 找到生成的
temp-component.component.spec.ts文件(一般在src/app/temp-component/目录下),复制到你误删spec的目标组件目录中。 - 打开复制后的文件,把所有
TempComponent替换成你的目标组件类名,同时调整文件引用路径(比如把./temp-component.component改成你的组件实际文件路径)。 - 最后删除临时组件的目录,清理掉多余文件即可。
方法二:手动创建标准模板
如果你对Angular的spec模板结构熟悉,也可以直接新建一个.spec.ts文件,粘贴以下模板并替换对应内容:
import { ComponentFixture, TestBed } from '@angular/core/testing'; import { <YourComponentName> } from './<your-component-name>.component'; describe('<YourComponentName>', () => { let component: <YourComponentName>; let fixture: ComponentFixture<<YourComponentName>>; beforeEach(async () => { await TestBed.configureTestingModule({ declarations: [ <YourComponentName> ] }) .compileComponents(); fixture = TestBed.createComponent(<YourComponentName>); component = fixture.componentInstance; fixture.detectChanges(); }); it('should create', () => { expect(component).toBeTruthy(); }); });
只需要把<YourComponentName>和<your-component-name>替换成你实际的组件类名和文件名就行。
两种方法都不需要依赖任何第三方工具,完全用Angular CLI自带的能力或者手动编写就能解决问题。
内容的提问来源于stack exchange,提问作者a p
相关产品推荐
相关产品推荐

