在Ember 2.16中使用window.confirm()创建集成测试?

问题描述 投票:1回答:2

我正在为Ember 2.16组件编写集成测试,并且正在测试一些用户操作。

其中一个用户动作用作window.confirm()功能,在该动作中,询问用户是否确定要删除某个项目,然后再删除该项目。

我想通过接受和拒绝确认来测试此组件的功能。组件操作类似于以下内容:

delete(id){
  if(confirm('Are you sure you want to delete?')){
    //do stuff
  } else {
    //do other stuff
  }
}

在集成测试中,我成功单击了按钮以显示提示,但遇到此错误:

[Testem] Calling window.confirm() in tests is disabled, because it causes testem to fail with browser disconnect error.

我如何创建将绕过window.confirm()功能的集成测试?我在组件中添加了一种方法来绕过环境是否在“测试”模式下的确认,但这并没有真正的帮助,因为我没有测试依赖window.confirm()的部分代码。

我环顾四周,看看是否有一个变量可以传递给组件以使window.confirm()为真/假,但未成功。

我如何创建一个测试来测试内部具有window.confirm()函数的组件?

javascript ember.js integration-testing
2个回答
0
投票

我会在测试中使用window.confirm()之类的库对sinon进行存根,我希望在其中调用它,以便:


0
投票

一种解决方案是保存window.confirm的原始实现,并在测试之前编写自己的实现,然后在测试结束时恢复原始实现。

© www.soinside.com 2019 - 2024. All rights reserved.