Cypress测试未因模拟对象中的异常而失败

Cypress测试未因模拟对象中的异常而失败,cypress,Cypress,我的测试包含如下内容: it.only('do something',function(){ cy.window().then(函数(win){ win.GlobalObject={ 方法:函数(数据){ 返回expect(data).to.deep.eq({ 公司名称:“Pied Piperz”, 国家:'美国' }); } }; }); cy.get('[data cy=submit]')。单击(); }); 当我的测试运行时,部分逻辑调用window.GlobalObject.someM

我的测试包含如下内容:

it.only('do something',function(){
cy.window().then(函数(win){
win.GlobalObject={
方法:函数(数据){
返回expect(data).to.deep.eq({
公司名称:“Pied Piperz”,
国家:'美国'
});
}
};
});
cy.get('[data cy=submit]')。单击();
});
当我的测试运行时,部分逻辑调用
window.GlobalObject.someMethod({})
,这应该会导致测试失败,因为我没有将预期的对象传递到
someMethod()
。相反,我在日志中看到一个失败的断言:

但总体测试被标记为成功:


如何使模拟的
GlobalObject中的失败断言使整个测试失败?

问题是,您的测试在通过测试后失败

一旦Cypress完成
cy.get('[data cy=submit]')。单击()
,它就完成了所有命令的执行,因此它认为您的测试已经完成

然后,几毫秒后,出现了一个失败的
expect()
——但是Cypress已经通过了测试,因此没有什么有意义的事情要做

但一切都没有失去!您可以使用可选的
done
参数在测试完成时手动告诉Cypress,如下所示:

it.only('do something',function(done){//