Что такое кипарисовые часы () и тик () - PullRequest
0 голосов
/ 09 июля 2020

Я создал это простое приложение React, чтобы понять, как часы Cypress работают:


function App() {
  const inputRef = useRef();
  useEffect(()=>{
    setTimeout(()=>inputRef.current.value = "foo",20000)
  },[])
  return (
    <div className="App">
      <input ref={inputRef} type="text" data-cy="my-input"/>
    </div>
  );
}

Обычно приложение ждет 20 секунд, а затем устанавливает для входного значения значение " foo ".

Я пытаюсь подтвердить этот logi c, используя часы Cypress:

describe("My Input",()=>{
    beforeEach(()=>{
        cy.visit('/')
    })

    it("should get a value of foo after 20 seconds",()=>{
        cy.clock()
        cy.tick(20000);
        cy.get('[data-cy=my-input]').should('have.value','foo');
    })
})

Я пробовал несколько вещей, например, вызов cy.clock() внутри beforeEach предложение с использованием полученного clock в утверждении: cy.clock().then(clock => clock.tick(20000)), но ничего не работает.

Что мне здесь не хватает?

1 Ответ

0 голосов
/ 13 июля 2020

Итак, в конце концов мне удалось заставить свой тест работать, переместив вызов clock() в обратный вызов before:

before(()=>{
        cy.clock();
        cy.visit('/')
    })

    it("should get a value of foo after 20 seconds",()=>{
        cy.get('[data-cy=my-input]')
        cy.tick(20000);
        cy.get('[data-cy=my-input]').should('have.value','foo');
    })

Не уверен, почему делать то же самое внутри beforeEach не t имеют тот же эффект.

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