Как извлечь и проверить изменение даты с помощью Cypress?

Ошибка означает, что это неправильная версия JVM для этой версии Eclipse. Ссылка имеет более подробную информацию:

http://www.ehow.com/how_4784069_terminated-exit-code-error-eclipse.html

1
задан tonyrocks 17 January 2019 в 17:41
поделиться

1 ответ

Шаблон, который я использую, выглядит следующим образом (хотя я пытаюсь его улучшить),

it('should update last refreshed text', () => {
  cy.contains('selector-closest-to-text', 'signature text')
    .then(els => {
      const before = els[0].textContent;         // #1 parse the text
      expect(before.length).to.be.above(0);      // #2 in case text is empty
      cy.wait(1000)                              // #3 wait a second for new timestamp
      cy.get('selector-for-refresh-trigger')...  // #4 do something to refresh 
      cy.contains('selector-closest-to-text', 'signature text')
        .should('not.contain', before)           // #5 check has actually changed
        .then(els=> {
          const after = els[0].textContent;      // #6 parse again
          expect(after.length).to.be.above(0);   // #7 in case empty
          expect(before).not.to.eq(after);       // #8 compare
        })
    });
});

Примечания:

# 1 - синтаксический анализ текст

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

const before = els[0].textcontent.split(' ').slice(2).join(' ')

Вы можете извлечь больше, чем просто время обновления, если это так, создайте простую функцию JS за пределами it()

const parseText = (txt) => {
  const split = txt.split(' ')
  return {
    user: split.slice(0,1),
    role: split.slice(1,1),
    timeRefreshed: split.slice(2).join(' '),
  }
}

и используйте ее следующим образом

const user = parseText(els[0].textcontent).user
const role = parseText(els[0].textcontent).role
const before = parseText(els[0].textcontent).timeRefreshed

# 3 - в ожидании обновления

Это немного грубо, но просто. Может быть улучшено ожиданием изменения текста, может быть достаточно should('not.contain', before).
Примечание cy.clock(), вероятно, не будет работать здесь.

# 4 - запуск обновления

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

<Ч>
0
ответ дан Richard Matsen 17 January 2019 в 17:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: