Angular 在多模块文件项目中使用 Jasmine 测试组件
Angular testing a component with Jasmine in a multi module file project
我一直在努力让它工作,只依赖于 httpclient 的服务测试工作正常。然而,当我尝试测试具有这样一些依赖项的组件时(我什至不需要测试本身来显示错误):
describe('test suite name', () => {
let component: ExampleComponent;
let fixture: ComponentFixture<ExampleComponent>;
let testBed;
let dependencyMock = jasmine.createSpyObj('Dependency', ['action']);
beforeEach(async () => {
testBed = await TestBed.configureTestingModule({
declarations: [ExampleComponent],
providers: [
{ provide: Dependency, useValue: dependencyMock }
],
imports: [
// FormsModule,
// MatDialogModule,
// BrowserModule,
// BrowserAnimationsModule,
],
}).compileComponents();
});
});
控制台中出现大量错误,几乎所有错误都是这种类型:
app/someRandomLocation/RandomFile.component.ts:7:30 - error TS2307: Cannot find module 'src/app/someOtherRandomLocation/AnotherRandomFile.ts'.
7 import { AnotherRandomFile } from 'src/app/someOtherRandomLocation/AnotherRandomFile';
我尝试将 AppModule 放入导入中以检查它是否解决了问题,它只是给我带来了更多错误。
这是一个项目,其中有多个 *Module 文件以将它们分开一点。
有人知道我做错了什么吗?
编辑:
令人惊讶的是,在示例中更改路径后,从这里导入:
import { AnotherRandomFile } from 'src/app/someOtherRandomLocation/AnotherRandomFile';
为此:
import { AnotherRandomFile } from '../app/someOtherRandomLocation/AnotherRandomFile';
所述错误确实消失了,尽管这些错误对于该项目来说不是可接受的解决方案。我的其他项目没有同样的问题,有谁知道不需要更改所有导入的解决方案吗?
以防万一有人遇到同样的困境,解决问题的办法是:
- 转到文件 tsconfig.spec.json
- 注释掉(为我修复)或更改 baseUrl 属性 使其适合您的项目
我一直在努力让它工作,只依赖于 httpclient 的服务测试工作正常。然而,当我尝试测试具有这样一些依赖项的组件时(我什至不需要测试本身来显示错误):
describe('test suite name', () => {
let component: ExampleComponent;
let fixture: ComponentFixture<ExampleComponent>;
let testBed;
let dependencyMock = jasmine.createSpyObj('Dependency', ['action']);
beforeEach(async () => {
testBed = await TestBed.configureTestingModule({
declarations: [ExampleComponent],
providers: [
{ provide: Dependency, useValue: dependencyMock }
],
imports: [
// FormsModule,
// MatDialogModule,
// BrowserModule,
// BrowserAnimationsModule,
],
}).compileComponents();
});
});
控制台中出现大量错误,几乎所有错误都是这种类型:
app/someRandomLocation/RandomFile.component.ts:7:30 - error TS2307: Cannot find module 'src/app/someOtherRandomLocation/AnotherRandomFile.ts'.
7 import { AnotherRandomFile } from 'src/app/someOtherRandomLocation/AnotherRandomFile';
我尝试将 AppModule 放入导入中以检查它是否解决了问题,它只是给我带来了更多错误。
这是一个项目,其中有多个 *Module 文件以将它们分开一点。
有人知道我做错了什么吗?
编辑:
令人惊讶的是,在示例中更改路径后,从这里导入:
import { AnotherRandomFile } from 'src/app/someOtherRandomLocation/AnotherRandomFile';
为此:
import { AnotherRandomFile } from '../app/someOtherRandomLocation/AnotherRandomFile';
所述错误确实消失了,尽管这些错误对于该项目来说不是可接受的解决方案。我的其他项目没有同样的问题,有谁知道不需要更改所有导入的解决方案吗?
以防万一有人遇到同样的困境,解决问题的办法是:
- 转到文件 tsconfig.spec.json
- 注释掉(为我修复)或更改 baseUrl 属性 使其适合您的项目