Модульное тестирование - получение проблемы с Alert Controller в Ionic Framework - PullRequest
0 голосов
/ 04 июня 2019

Я пытаюсь написать контрольный пример для метода, который был вызван или нет.Внутри этого метода я вызываю окно подтверждения оповещения.

Я получаю сообщение об ошибке типа

Ошибка: this.alertCtrl.create не является функцией

Component.ts
submitTicket(comments) {
if (comments.length > 0) {
  const prompt = this.alertCtrl.create({
    title: "<span>  Improve Solution  </span>",
    message: "<span>" + 'Are you sure you want  <br>' + "</span>" +
      "<span>" + 'to submit this improvement' + "</span>",
    enableBackdropDismiss: false,
    buttons: [
      {
        text: 'Cancel',
        handler: data => {
          // Some stuff
        }            
      },
      {
        text: 'Improve Solution',
        handler: data => {
         //Some stuff
        }
      }
    ]
  });
  prompt.present();
} else {
  this.errorMsg = true;
}
}
component.spec.ts
import {AlertControllerMock } from 'ionic-mocks';

beforeEach(async(()=> {
TestBed.configureTestingModule({
    declarations: [ImprovedsolutionsPage],
    imports: [
        IonicModule.forRoot(ImprovedsolutionsPage),
        HttpClientTestingModule
    ],
    providers: [
        NavController,
        AppService,
        AlertController,
        ImprovedsolutionsPage,
        {provide: ViewController, useClass: ViewControllerMock},
        {provide: LoadingController, useClass: LoadingControllerMock},
        {provide: AlertController, useClass: AlertControllerMock},          
    ]
}).compileComponents
}))
beforeEach(()=> {
    fixture=TestBed.createComponent(ImprovedsolutionsPage)
    component=fixture.componentInstance
   fixture.detectChanges()
})

it('should be call submitTicket method', async(()= > {
spyOn(component, 'submitTicket').and.callThrough()

let comment='Needs to improve in detailing '
component.submitTicket(comment)
expect(component.submitTicket).toHaveBeenCalled()

}))

Здесь я использую модуль ionic-mocks и импортировал AlertControllerMock, как показано в приведенном выше коде.И я использую ионную версию 3. Для тестирования я использую карму и жасмин

Может кто-нибудь помочь мне в этом вопросе.

...