繁体   English   中英

APP_INITIALIZER测试用例失败

[英]APP_INITIALIZER failing test cases

我正在使用APP_INITIALIZER进行一些API调用,但一切正常,但添加了

 { provide: APP_INITIALIZER, useFactory: MyProviderFactory, deps: [MyService], multi: true }

在app.module.ts中失败了我的测试用例。 这是我的app.module.ts文件

import { BrowserModule } from '@angular/platform-browser';
import { NgModule, APP_INITIALIZER } from '@angular/core';
import { RouterModule } from '@angular/router';
import { HttpClientModule } from '@angular/common/http';
import { LayoutModule } from '@angular/cdk/layout';

import { AppComponent } from './app.component';

import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
// tslint:disable-next-line:max-line-length

import { MyService } from './services/my-provider.service';

export function MyProviderFactory(provider: MyService) {
  return () => provider.getdata();
}


@NgModule({
  declarations: [
    AppComponent,
  ],
  imports: [
    BrowserModule,
    HttpClientModule,
    FormsModule,
    BrowserAnimationsModule,
    HttpClientModule,
    ReactiveFormsModule,
    RouterModule.forRoot([
      { path: '', component: AppComponent }
    ])
  ],
  providers: [ MyService,
              { provide: APP_INITIALIZER, useFactory: MyProviderFactory, deps: [MyService], multi: true }
            ],
  bootstrap: [AppComponent]
})
export class AppModule { }

这是错误

"message": "An error was thrown in afterAll\nFailed: You provided 'undefined' where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.

还有如何在应用程序中测试APP_INITIALIZER。

任何帮助,将不胜感激。

正如您的错误所言,您的工厂没有返回流(可观察,应许,数组或可迭代)。 相反,您将返回一个函数。

假设MyService.getdata()返回其中之一,则只需将其return provider.getdata()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM