在单元测试中访问Angular服务的成员变量可能会遇到一些问题,因为在测试环境中,服务实例是由测试框架创建的,而不是由Angular的依赖注入系统创建的。以下是一种解决方法:
import { TestBed } from '@angular/core/testing';
import { MyService } from './my-service';
describe('MyService', () => {
let service: MyService;
beforeEach(() => {
TestBed.configureTestingModule({});
service = new MyService(/* inject dependencies here */);
});
it('should access service member variable', () => {
// Access service member variable
expect(service.memberVariable).toBe(/* expected value */);
});
});
import { TestBed } from '@angular/core/testing';
import { MyService } from './my-service';
describe('MyService', () => {
let service: MyService;
beforeEach(() => {
TestBed.configureTestingModule({
providers: [MyService] // Add service to providers list
});
service = TestBed.inject(MyService); // Create service instance using dependency injection
});
it('should access service member variable', () => {
// Access service member variable
expect(service.memberVariable).toBe(/* expected value */);
});
});
以上是两种常见的解决方法,具体选择哪种方法取决于你的测试需求和代码结构。