Как проверить функцию-заглушку с определенной формой объекта в качестве аргумента в Cypress? - PullRequest
1 голос
/ 29 октября 2019

Как я могу проверить, что функция-заглушка вызывается с объектом определенной формы в качестве аргумента?

Например, я пытался сделать что-то вроде

cy.get('@submitStub').should('have.been.calledWithMatch', {
  dateRange: {
    startDate: `The actual value here doesn't matter`,
    endDate: '',
  }
});

Конечно, приведенный выше код не работает должным образом. Кто-нибудь может помочь? Спасибо!

1 Ответ

0 голосов
/ 29 октября 2019

Вы можете сделать:

describe('test', () => {
  it('test', () => {
    const obj = {
      method () {}
    };
    cy.stub(obj, 'method').as('stubbed')

    obj.method({
      dateRange: {
        startDate: `The actual value here doesn't matter`,
        endDate: '',
      }
    });

    const isNotUndefined = Cypress.sinon.match( val => {
      return val !== undefined;
    });

    cy.get('@stubbed').should('have.been.calledWithMatch', {
      dateRange: {
        startDate: isNotUndefined,
        endDate: isNotUndefined,
      }
    });

    // or
    cy.get('@stubbed').should('have.been.calledWithMatch', {
      dateRange: Cypress.sinon.match( obj => {
        return obj &&
          'startDate' in obj &&
          'endDate' in obj
      })
    });

    // or
    cy.get('@stubbed').should('have.been.calledWithMatch', {
      dateRange: Cypress.sinon.match.has("startDate")
        .and(Cypress.sinon.match.has("endDate"))
    });

    // or
    cy.get('@stubbed').should('have.been.calledWithMatch', arg1 => {
      // do whatever comparisons you want on the arg1, and return `true` if 
      //  it matches
      return true;
    });
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...