Что означает это утверждение: «Cypress команды не возвращают своих субъектов, они возвращают их»? - PullRequest
0 голосов
/ 26 сентября 2018

Я узнаю о Cypress.io и натолкнулся на это заявление на их официальном сайте. Cypress.io

"Команды Cypress не возвращают свои темы, они дают их. "

В чем разница между" yield "и" return "в командах в cypress.io?

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Они не возвращают объекты синхронно, как вы ожидаете, для привыкания требуется некоторое время - но как только вы это получите, вы получите это.

Это не будет работать так, как вы ожидаете, потому что cy.get является асинхронным, поэтому myButton не будет установлен до того, как вы вызовете .click() для него:

var myButton = cy.get(#myButton);
myButton.click(); //Nope!

Команды Cypress выдают объекты Chainers , которые ставят в очередь действия, которые нужно выполнить, так что вы могли быиспользуйте это так:

cy.get(#myButton).click(); //Yes!

Или:

cy.get(#myButton).then(myButton => {
  // do stuff with myButton here
});

Некоторое дополнительное чтение: https://docs.cypress.io/guides/core-concepts/variables-and-aliases.html#Return-Values

0 голосов
/ 26 сентября 2018

Я полагаю, что доходность означает «заплатить вперед», тогда как возврат = «заплатить назад».

См. Основные понятия

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

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