gpt4 book ai didi

unit-testing - 测试 ember 应用程序时去抖函数调用的错误

转载 作者:行者123 更新时间:2023-12-01 12:44:16 25 4
gpt4 key购买 nike

我正在使用 QUnit 测试一个相对较大的 Ember 应用程序 ( http://wheelmap.org/map ),并且遇到了去抖动调用的问题,例如更改 url 以在应用程序内拥有 map View 的永久链接或在测试时执行手动 AJAX 请求。

我遵循了 http://emberjs.com/guides/testing/integration/ 中的文档

现在,当我通过在模块设置中调用 App.reset() 重置应用程序状态时,它会将所有绑定(bind)等重置为变量和相关 Controller 。

module('Map', {
setup: function() {
App.reset();
}
});

拥有一个干净的工作环境似乎是件好事,但会导致变量可通过 Ember.setEmber.get 访问的错误,例如this.get('controllers.toolbar'):

Cannot call method 'set' of null

所以第一个测试总是运行良好,但由于第一个测试的去抖动函数调用,进一步的测试中断了。所以我认为我必须做的就是以某种方式停止这种去抖动的调用。

其他选项将检查是否在此函数调用中设置了所有需要的变量。但是如果只是为了测试而添加条件,这似乎很麻烦。

你怎么看?

提前致谢!

最佳答案

我通过搜索 RunLoop 源文件找到了答案:

Ember.run.cancelTimers()

它不是文档的一部分。可能是文档不完善或不是公共(public) API 的一部分的问题。

现在我只是在模块测试拆解函数中调用它:

module('Map', {
setup: function() {
// ...
},
teardown: function() {
Ember.run.cancelTimers()
}
});

关于unit-testing - 测试 ember 应用程序时去抖函数调用的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21740730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com