javascript - 多个提供商 Angular 2 测试床

标签 javascript unit-testing angular jasmine

我似乎无法在 Angular 2 测试台中注册多个提供者(服务)。我想要的只是为测试平台提供不止一项服务。这是我当前的测试套件的示例。

export function main() {

  describe('Create Applications Component test suite:', () => {

    let fixtureComponent:any, nativeComponentElement:any;

    beforeEach(() => {

      return TestBed.configureTestingModule({
        imports: [
        ReactiveFormsModule,
        FormsModule
      ],
      declarations: [CreateApplicationComponent]
      }).overrideComponent(CreateApplicationComponent, {
        set: {
          providers: [
            {
              provide: injector,
              useClass: MockCreateApplicationService
            }
          ]
        }
      })
      .compileComponents().then(() => {
        fixtureComponent =  TestBed.createComponent(CreateApplicationComponent);
        nativeComponentElement = fixtureComponent.nativeElement;
        return fixtureComponent;
      });
    });

    it('component should work without errors', () => {
      expect(true).toBe(true);
    });

  });

}

我需要达到的目标是这样的:

.overrideComponent(CreateApplicationComponent, {
    set: {
      providers: [
        {
          provide: injector,
          useClass: MockCreateApplicationService
        },
        {
          provide: providerB,
          useClass: SecondProvider
        }
      ]
    }
  })

最佳答案

事实证明这是添加多个提供程序的正确方法。我只是对收到的缺少 formBuilder 提供程序的错误感到困惑,所以我添加了该错误,现在一切都按预期工作。

解决方案:

.overrideComponent(CreateApplicationComponent, {
    set: {
      providers: [
        { provide: CreateApplicationService, useClass: MockCreateApplicationService },
        { provide: UserService, useClass: MockUserService },
        { provide: FormBuilder, useClass: FormBuilder }
      ]
    }
  })

关于javascript - 多个提供商 Angular 2 测试床,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42612721/

相关文章:

javascript - 为什么我在 Nuxt 中突然出现未知单词错误?

javascript - 选项卡式内容不适用于多个 div

javascript - jQuery 倒计时 - 将 0 天更改为今天

java - 斯波克。如何模拟java.lang.Class?

javascript - 如何在javascript中测试两个具有不同参数值的返回函数?

javascript - 可以预加载使用 canLoad 的模块吗?

javascript - Bootstrap 确认 - 对元素属性应用 onConfirm 函数

javascript - 如何使用 sinon 验证构造函数是否被调用

python - Django 测试失败

angular - 在 Angular html 模板中整理属性顺序