簡體   English   中英

無法以角度運行Toast消息的單元測試用例

[英]Unable to run unit test case for toast message in angular

嗨,我正在用角度5開發Web應用程序。我正在使用吐司消息顯示消息。 我正在使用來自https://www.npmjs.com/package/angular2-toaster的吐司消息。 實施是正確的並且可以正常工作。 我在編寫單元測試用例時遇到問題。 下面是我在組件中的實現。 我在組件中添加了以下代碼行。

import { ToasterModule, ToasterService } from 'angular2-toaster';

我在構造函數中添加了以下代碼。

private toasterService: ToasterService

我正在顯示如下吐司消息。

this.toasterService.pop('success', 'Args Title', 'Args Body');

我在HTML文件中添加了以下代碼。

<toaster-container></toaster-container>

此實現工作正常。 我正在編寫如下的單元測試用例。

describe('Component: TenantEditorComponent', () => {

  beforeEach(async(() => {
        TestBed.configureTestingModule({
            imports: [
                HttpClientModule,
                RouterTestingModule,
                TranslateModule.forRoot({
                    loader: {
                        provide: TranslateLoader,
                        useClass: TranslateLanguageLoader
                    }
                }),
                NgxDatatableModule,
                FormsModule,
                UiSwitchModule,
                TooltipModule.forRoot(),
                ModalModule.forRoot(),
                ToasterModule
            ],
  providers: [   ToasterService ]
        }).compileComponents();
fixture = TestBed.createComponent(TenantEditorComponent);
        component = fixture.componentInstance;
        submitEl = fixture.debugElement;
        fixture.detectChanges();
    }));

這給我錯誤

還沒有初始化烤面包機容器來接收烤面包。

我在下面添加了屏幕截圖。

在此處輸入圖片說明

有人可以幫我解決問題嗎? 任何幫助,將不勝感激。 謝謝

創建間諜以檢查烤面包機服務。

     describe('Component: TenantEditorComponent', () => {
      let toasterServiceSpy: jasmine.Spy;

 const toasterSetvices = jasmine.createSpyObj('toasterSetvices', ['pop']);
     toasterServiceSpy = toasterSetvices.pop.and.returnValue(of(''));

      beforeEach(async(() => {
            TestBed.configureTestingModule({
                imports: [
                    HttpClientModule,
                    RouterTestingModule,
                    TranslateModule.forRoot({
                        loader: {
                            provide: TranslateLoader,
                            useClass: TranslateLanguageLoader
                        }
                    }),
                    NgxDatatableModule,
                    FormsModule,
                    UiSwitchModule,
                    TooltipModule.forRoot(),
                    ModalModule.forRoot(),
                    ToasterModule
                ],
      providers: [    {provide: ToasterService, useValue: toasterSetvices } ]
            }).compileComponents();

    fixture = TestBed.createComponent(TenantEditorComponent);
            component = fixture.componentInstance;
            submitEl = fixture.debugElement;
            fixture.detectChanges();
        }));

   it('Hit the Login Button', () => {
    const fixtureInstance = TestBed.createComponent<LoginComponent> 
     (LoginComponent);
    const toasterServiceInstance = 
    fixtureInstance.componentInstance.toasterService;
    fixtureInstance.detectChanges();
    component.submit();
    expect(toasterServiceSpy.calls.any()).toBe(true);

  });

暫無
暫無

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

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