我正在try 测试ANGLE中的普通class
(不是组件),它有一个服务依赖项和一个单独的构造函数参数.我使用依赖项为组件测试镜像了the docs,但我得到了以下错误:
Unexpected value 'MyClass' imported by the module 'DynamicTestModule'. Please add a @NgModule annotation.
个
my-service.service.ts
:
@Injectable({
providedIn: 'root',
})
export class MyService { ... }
my-class.ts
:
import { inject } from '@angular/core';
import { MyService } from './my-service.service';
export class MyClass {
private _myService: MyService = inject(MyService);
private _name: string;
constructor(name: string) {
this._name = name;
}
}
my-class.spec.ts
个
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MyService } from './my-service.service';
import { MyClass } from './my-class';
describe('MyClass', () => {
let myClass: MyClass;
let mockMyService: Partial<MyService>;
let fixture: ComponentFixture<MyClass>;
beforeEach(() => {
mockMyService = {};
TestBed.configureTestingModule({
imports: [MyClass],
providers: [{ provide: MyService, useValue: mockMyService }],
});
fixture = TestBed.createComponent(MyClass); // causes error
myClass = fixture.componentInstance;
TestBed.inject(MyService);
});
it('should create', () => {
expect(myClass).toBeTruthy();
});
});
更新my-class.spec.ts
个
import { MyClass } from './my-class';
describe('MyClass', () => {
let myClass: MyClass;
beforeEach(() => {
myClass = new MyClass('someName');
});
it('should create', () => {
expect(myClass).toBeTruthy();
});
});
如何使用服务依赖测试这个普通类?