Cypress spy在测试之间工作不一致

Cypress spy在测试之间工作不一致,cypress,Cypress,我正在监视画布中对fillText的调用。我的组件每1000毫秒更新一次。下面是我如何设置的: 在之前的中,我发送渲染画布的数据 在每个之前的中,我获取上下文并将spy设置为textSpy变量,所有方便的方法都会捕获该变量 在测试中,我调用了便利方法: 发送一些新数据(假设是序列号为1的序列) 等待画布绘制完成(通过等待也呈现为html的“系列1”) 断言已使用与序列的长度和id号对应的文本调用spy 方便的方法可能有点到处都是/很难遵循,因此我希望我的解释能有所帮助: description

我正在监视画布中对
fillText
的调用。我的组件每1000毫秒更新一次。下面是我如何设置的:

  • 在之前的
    中,我发送渲染画布的数据
  • 在每个之前的
    中,我获取上下文并将spy设置为
    textSpy
    变量,所有方便的方法都会捕获该变量
  • 在测试中,我调用了便利方法:
  • 发送一些新数据(假设是序列号为1的序列)
  • 等待画布绘制完成(通过等待也呈现为html的“系列1”)
  • 断言已使用与序列的长度和id号对应的文本调用spy
  • 方便的方法可能有点到处都是/很难遵循,因此我希望我的解释能有所帮助:

    description('HScroll更新后显示序列',()=>{
    const sendSeriesUpTo=(len:number,间隔=0.02)=>{
    //创建一系列具有给定间隔值的给定长度
    //并发送该系列
    };
    之前(设置非加载测试);
    之后(拆卸非加载测试);
    描述('数据更新',()=>{
    让textSpy:SinonSpy;
    const getSpy=()=>cy.context('series')。然后(context=>textSpy=cy.spy(context,'fillText'));
    //传入一个字符串数组,这些字符串必须全部被调用,但不一定是唯一的调用
    const expectTextCall=(textary:string[])=>{
    const textCalls=textSpy.getCalls().map(c=>c.args[0]);
    forEach(text=>expect(textCalls).to.include(text));
    };
    const sendAndExpectFrameCount=(frameCount:number,series:string[]=['1'],allSeries:string='1')=>{
    sendSeriesUpTo(帧数);
    cy.contains(`Series:${allSeries}`)。然后(()=>{
    常量arr=[`(${frameCount}帧)`];
    series.forEach(s=>arr.push(`series${s}`));
    expectTextCall(arr);
    });
    };
    const sendAndExpectRange=(from:number,to:number)=>{
    常数差=to-from+1;
    常量数组=[…数组(diff.keys()];
    array.forEach(n=>{
    sendAndExpectFrameCount(n+from);
    });
    };
    描述('接收单个非溢出序列',()=>{
    之前(()=>{
    cy.sendstudyUpdateWitheriesarray([1,2,3])。映射(n=>createFdsObject());
    });
    在每个之前(()=>{
    然后(context=>textSpy=cy.spy(context'fillText');
    });
    描述('溢出前',()=>{
    它('显示初始系列,'+
    '显示系列的非溢出更新',()=>{
    sendAndExpectRange(80,85);
    });
    });
    描述('溢出',()=>{
    它('当添加帧以溢出屏幕时滚动到末尾(最新)',()=>{
    sendAndExpectFrameCount(90)
    });
    
    好的,问题是第一次测试通过了,但是第二次测试说间谍没有接到任何电话

    我认为Cypress会在测试之间默认重置spy,但我也会在每次测试之前在我的
    中重新设置spy。
    spy在第一个测试中看到调用,但在第二个测试中看不到。浏览器不会在两个测试之间重新加载,因此每次spy肯定都使用相同的画布上下文

    这里怎么了