Я хочу добиться, чтобы мой тест сравнивал длину списка. Чтобы получить длину моего списка, я делаю следующее:

 const oldListCount = cy.get('.grid-row').its('length');

Позже в тесте я хочу сравнить oldListCount с текущей длиной.

 newListCount.should('be.gt',oldListCount);

Но Сайпресс говорит, что oldListCount является [object Object]

Я также пытался работать с псевдонимами и делать инкапсулированный .then вот так:

cy.get('.grid-row').its('length').then(newListCount => {
  oldLC.then(oldListCount => {
     newListCount.should('be.gt', oldListCount.toString());
    })
});

Но либо работал .. Также кое-что стоит упомянуть, когда я регистрирую оба listCounts внутри инкапсулированного .then числа, счетчик равен, а пользовательский интерфейс и Cypresslogs показывают мне что-то еще.

Для моего теста не важно, что Count является конкретным числом, более важно, что новый Count больше старого.

Кто-нибудь может указать мне правильное направление?

0
Henry 30 Дек 2019 в 13:33

2 ответа

Я думаю, что-то подобное сработает. Во-первых, вам нужно сохранить старый список как псевдоним.

cy.get('.grid-row').as('oldList')

А потом в тесте

cy.get('@oldList').its('length').then(oldLength => {
 cy.get('.grid-row').its('length').should('be.gt' , oldLength)
})
1
Hatem Hatamleh 30 Дек 2019 в 20:16
Я пробовал это в своем тесте, но когда он сравнивает две длины списка, Count всегда равен текущей длине сетки. Псевдоним не сохраняет счетчик старого списка.
 – 
Henry
2 Янв 2020 в 09:30

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

0
Henry 31 Авг 2020 в 13:32