window.clearInterval 関数を監視する cy.spy
P粉023326773
P粉023326773 2023-08-17 12:16:34
0
1
456
<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粉023326773
P粉023326773

全員に返信(1)
P粉745412116

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

リーリー

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

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

リーリー

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

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート