Вы найдете (или нашли), что при возврате интерфейсов они пронизывают ваш код. например вы возвращаете интерфейс из метода A, и вы имеете , чтобы затем передать интерфейс к методу B.
То, что вы делаете, - это программирование по контракту, хотя и ограниченным образом.
Это дает вам огромные возможности для изменения реализаций под обложками (при условии, что эти новые объекты соответствуют существующим контрактам / ожидаемым поведением).
Учитывая все это, у вас есть преимущества с точки зрения выбор вашей реализации и то, как вы можете подменить поведение (в том числе тестирование - используя насмешливость, например). В случае, если вы не догадались, я все сторонник этого и попытаюсь уменьшить (или ввести) интерфейсы там, где это возможно.
Вы можете использовать each
:
cy.get('p[data-test="ContactID"]').each(($match) => {
cy.wrap($match).invoke('text').should('not.eq', contactID)
})
invoke
для вызова функции на объекте, в данном случае .text()
.should
делает утверждение на этом тексте cy.wrap