Как SpyOn нативные функции JavaScript? Такие как .find ()? - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь издеваться this.editedComponentDetailsData.find в следующем:

editButtonClicked(event) {
    let rowData = this.editedComponentDetailsData.find((row) => {
      return row.operationalSequenceNumber == this.rowKey;
    })
  }

Это не работает:

 it('should do something', () => {
    let result=spyOn(subject.editedComponentDetailsData.prototype,'find').and.returnValue({prop1:''});
  });

1 Ответ

2 голосов
/ 08 июля 2019

Просто присвойте editedComponentDetailsData свойство, которое можно повторять как пустой массив, и тогда вы сможете следить за находкой, но вы просто получите доступ к этому без прототипа, как внутри вашего компонента.

beforeEach(() => {
    TestBed.resetTestEnvironment();
    TestBed.initTestEnvironment(BrowserDynamicTestingModule,
      platformBrowserDynamicTesting())

    TestBed.configureTestingModule({
      declarations: [AppComponent],
      providers: [
        AppComponent
      ],

      schemas: [NO_ERRORS_SCHEMA]
    });
    fixture = TestBed.createComponent(AppComponent);
    subject = fixture.componentInstance;
    subject.editedComponentDetailsData=[]; //mock with empty array
  });
  it('should do something', () => {
    let result=spyOn(subject.editedComponentDetailsData,'find').and.returnValue({prop1:''}); //the spy
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...