Angular单元测试中Testbed.inject(serviceName)和fixture.debugElement.injector.get(serviceName)有什么区别?
创始人
2024-10-23 22:30:37
0

Testbed.inject() 和 fixture.debugElement.injector.get() 都是通过依赖注入获取服务的方法。不同之处在于,前者是在 TestBed 组件中获取服务,而后者是在测试组件的 debugElement 元素中获取服务。

下面是一个实际的代码示例:

import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MyService } from './my.service';

describe('MyComponent', () => {
  let component: MyComponent;
  let fixture: ComponentFixture;

  beforeEach(async () => {
    await TestBed.configureTestingModule({
      providers: [MyService],
      declarations: [MyComponent]
    }).compileComponents();
  });

  beforeEach(() => {
    fixture = TestBed.createComponent(MyComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();
  });

  it('should create', () => {
    expect(component).toBeTruthy();
  });

  it('should inject MyService using Testbed.inject', () => {
    const myService = TestBed.inject(MyService);
    expect(myService).toBeTruthy();
  });

  it('should inject MyService using fixture.debugElement.injector.get', () => {
    const debugElement = fixture.debugElement;
    const myService = debugElement.injector.get(MyService);
    expect(myService).toBeTruthy();
  });
});

从上面的代码中可以看出,Testbed.inject(MyService) 是在 TestBed 组件中直接获取服务,它更加简单和直接。fixture.debugElement.injector.get(MyService) 是在测试组件的 debugElement 元素中获取服务,相比之下更加灵活。无论使用那种方式获取服务,我们都可以写出有效的单元测试。

相关内容

热门资讯

黑科技系统(微扑克游戏)外挂透... 黑科技系统(微扑克游戏)外挂透视辅助神器(透视)解密教程(原来有挂);所有人都在同一条线上,像星星一...
黑科技了解(WePoke)黑科... 黑科技了解(WePoke)黑科技透明挂辅助挂(透视)技巧教程(好像有挂)WePoke辅助器中分为三种...
黑科技数据(aapokER)外... 黑科技数据(aapokER)外挂透视辅助神器(透视)揭秘攻略(果然真的是有挂);一、aapokERA...
黑科技脚本(wePOke)黑科... 黑科技脚本(wePOke)黑科技透明挂辅助技巧(透视)插件教程(一贯有挂)1、玩家可以在wePOke...
黑科技新版(wEpoKe)黑科... 黑科技新版(wEpoKe)黑科技透明挂辅助安装(透视)解密教程(确实是有挂)1、进入到wEpoKe黑...
黑科技了解(WEPOke)黑科... 黑科技了解(WEPOke)黑科技透明挂辅助挂(透视)线上教程(确实真的是有挂)1、构建自己的WEPO...
黑科技科技(wEpOke)黑科... 黑科技科技(wEpOke)黑科技透明挂辅助下载(透视)存在挂教程(本来有挂)1、进入游戏-大厅左侧-...
黑科技数据(WPk)外挂透视辅... 黑科技数据(WPk)外挂透视辅助技巧(透视)微扑克教程(好像真的有挂)1)微扑克辅助挂:进一步探索微...
黑科技了解(WPK)外挂透视辅... 黑科技了解(WPK)外挂透视辅助器(透视)技巧教程(真是是真的有挂)1、进入游戏-大厅左侧-新手福利...
黑科技免费(红龙扑克)外挂辅助... 黑科技免费(红龙扑克)外挂辅助器(透视)系统教程(好像有挂)1、许多玩家不知道红龙扑克辅助软件怎么退...