簡體   English   中英

$injector 沒有提供者-在 AngularJs + Angular 8 混合應用程序單元測試用例中

[英]No provider for $injector- In AngularJs + Angular 8 Hybrid application unit test case

我正在為 Angular 8 應用程序編寫單元測試用例。 這是 AngularJs + Angular 8 的混合應用。

我收到以下錯誤:

NullInjectorError: StaticInjectorError(DynamicTestModule)[TestService -> $injector]: 
  StaticInjectorError(Platform: core)[TestService -> $injector]: 
    NullInjectorError: No provider for $injector!

我不確定,如何模擬 $injector 類。 我嘗試了模擬TestService ,我將無法涵蓋該場景中的某些集成測試用例。

任何對模擬 $injector 類的幫助將不勝感激。

您可以為 $injector 創建一個模擬對象。 我在我的項目中遇到了 $rootscope 的類似問題,我使用 Angular provider 為 $rootscope 提供了一個空對象:

    {provide: '$rootScope',useValue : {}}

This provider will be part of TestBed configuration like this :

    beforeEach(async(() => {
        TestBed.configureTestingModule({
          declarations: [],
          imports: [],
          providers : [{provide: '$rootScope',useValue : {}}]
        })
          .compileComponents();
      }));

您可以根據您的要求提供任何虛擬值,而不是 useValue 的空對象。

它的語法錯誤,TestService 導入正確的組件/模塊。 有關更多信息“ https://angular.io/start

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM