検索

ホームページ  >  に質問  >  本文

window.clearInterval 関数を監視する cy.spy

<p>開発中のアプリケーションでは、setInterval と clearInterval を使用します。 clearInterval メソッドが呼び出されているかどうかを監視したいと考えています。私が実際にやっていることは次のとおりです: </p> <pre class="brush:php;toolbar:false;">beforeEach(() => { cy.クロック(新しい日付()) }) it('テストシナリオ' => { const fn = cy.spy(document.defaultView, 'clearInterval') // fn = cy.spy(window, 'clearInterval') も試しました ... ... ... //clearInterval 関数は「then」セクションに入るときに呼び出されますが、スタブはまだ呼び出されていないと報告します cy.tick(30000).then(() => { Expect(fn).to.have.been.Once }) }) afterEach(() => { cy.クロック().invoke('復元') })</pre> <p>上記のスニペットのexpectアサーションは失敗しますが、成功することを期待しています。スパイを初期化するための私のロジックは有効ですか?上記の問題についてご協力いただければ幸いです。 </p>
P粉023326773P粉023326773461日前460

全員に返信(1)返信します

  • P粉745412116

    P粉7454121162023-08-18 10:40:22

    Cypress は、テストとアプリケーションで異なる window を使用します。 cy.spy(window... はテスト ウィンドウを使用していますが、アプリケーション ウィンドウを監視するには、cy.window() コマンドを使用する必要があります。

    リーリー

    ただし、別の複雑な問題が発生する可能性があります。cy. Clock() は、アプリケーションのタイミング関数を制御できるように clearInterval() をプロキシに配置するため、実際には実行できない可能性があります。それを監視することができます。

    それでも正常に動作しない場合は、cy. Clock() の戻り値を取得し、呼び出し情報が付加されているか確認してください。

    リーリー

    または、clearIntervalを指定してくださいプロキシ化しないでください

    リーリー

    返事
    0
  • キャンセル返事