Почему я должен явно очистить sessionStorage при использовании Cypress? - PullRequest
0 голосов
/ 07 июня 2018

Я использую Cypress для тестирования приложения Angular, которое просматривает список врачей.Контроллер сохраняет текущую страницу в $ sessionStorage.pagination.Если я не могу явно очистить хранилище сеанса между тестами, тесты, которые следуют моему тесту «должны перейти на следующую страницу», не пройдут.Если я явно очищаю хранилище сеанса между тестами, все работает как положено.Это противоречит тому, что я здесь прочитал (https://github.com/cypress-io/cypress/issues/686), который, кажется, говорит о том, что хранилище сеанса автоматически очищается между тестами.

Это ошибка в Cypress? Или я неправильно понимаю, что имеют в виду разработчики Cypress?очистить хранилище сессии между тестами?

describe('Simple Search Results Page Tests', function () {

    beforeEach(function(){
      cy.server();

    // routes omitted for brevity 

    // Changing pages breaks tests if I visit page under test like this
    cy.visit('http://localhost:9001/pageUnderTest'); 

    // tests work as expected if I visit page under test like this
    /*
    cy.visit('http://localhost:9001/pageUnderTest', 
              {onBeforeLoad: (win) => { win.sessionStorage.clear()}
    });
    /*
  }); 

  it('should search Best Match', function(){
    cy.get('[data-cy=first-name]').first().should('have.text', 'Michael')
      .get('[data-cy=last-name]').first().should('have.text', 'Emiley')
    });

  it('should go to the next page', function(){
    cy.get('[data-cy="page-number"]').click('right')
  }); 

  // this test is broken if session storage not explicitly re-set.
  it('should search Best Match (again)', function(){
    cy.get('[data-cy=first-name]').first().should('have.text', 'Michael')
      .get('[data-cy=last-name]').first().should('have.text', 'Emiley')
    });
});

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Вы пробовали с контекстом?

context('test 1', function () { cy.setCookie('test') })
context('test 2', function () { cy.getCookie('test').should('not.exist' })

существует?

0 голосов
/ 08 июня 2018

Эта проблема с открытым gitlab , кажется, соответствует вашей проблеме и подтверждает, что это запрошенная функция.

Читая, хотя, упоминается этот эпос , в котором говорится, что Cypressочищает sessionStorage.Так что я тоже немного растерялся:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...