我正在为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()函数的组件?
我会在测试中使用window.confirm()
之类的库对sinon进行存根,我希望在其中调用它,以便:
一种解决方案是保存window.confirm
的原始实现,并在测试之前编写自己的实现,然后在测试结束时恢复原始实现。