在进行使用Jasmine进行Angular2的单元测试时,如果需要注入私有服务,可以按照以下步骤进行操作:
import { TestBed, async } from '@angular/core/testing';
import { YourComponent } from './your.component';
import { YourService } from './your.service';
beforeEach
函数来配置测试环境,并注入私有服务。beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [YourComponent],
providers: [YourService] // 注入私有服务
}).compileComponents();
}));
TestBed.createComponent
函数创建组件的实例,并获取对应的调试器。beforeEach(() => {
fixture = TestBed.createComponent(YourComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should call service method', () => {
const service = TestBed.inject(YourService); // 获取注入的私有服务实例
spyOn(service, 'yourMethod').and.returnValue('mocked value'); // 模拟服务方法的返回值
component.someMethod(); // 调用组件中使用服务的方法
expect(service.yourMethod).toHaveBeenCalled(); // 断言服务方法被调用
expect(component.someProperty).toEqual('mocked value'); // 断言组件属性的值
});
这样,您就可以使用Jasmine和Angular2进行单元测试,并成功注入和使用私有服务。
领取专属 10元无门槛券
手把手带您无忧上云