在 Ember.RSVP.hash 中使用过滤器无法在 qunit test 中检索数据
Using filter inside Ember.RSVP.hash fails to retrieve data in qunit test
我在使用两个模型的路由上进行 qunit 测试,并使用Ember.RSVP.hash
来完成此操作。事情按预期工作,但一旦我添加一个filter
来Ember.RSVP.hash
它就会停止在 qunit 中检索数据。在 qunit 之外,它仍然可以工作,所以我相信这是filter
、Ember.RSVP.hash
和qunit
的问题。
这是我的测试:
module('Ember.js Library', {
setup: function() {
Ember.run(App, App.advanceReadiness);
},
teardown: function() {
App.reset();
}
});
test('foo', function() {
visit('/books');
andThen(function() {
equal(currentRouteName(), 'books.index');
});
});
这是不使用filter
的工作路线:
App.BooksRoute = Ember.Route.extend({
model: function() {
var id = 1;
// note this does not filter "books" properly
return Ember.RSVP.hash({
books: this.store.find('books'),
library: this.store.find('library', id)
});
}
});
以下是使用 filter
且不起作用的版本:
App.BooksRoute = Ember.Route.extend({
model: function() {
var id = 1;
// note: filters "books" properly but doesn't work in qunit
return Ember.RSVP.hash({
books: this.store.filter('books', function(record) {
return record.get('libraryId') === id;
}),
library: this.store.find('library', id)
});
}
});
最终结果是,在工作版本中,books
按预期存在。在第二个版本中,books
最终为空。在这两个版本中,library
始终存在,因此我认为filter
问题所在。
如何使用filter
并让事情与 qunit 一起使用?
store.filter
实际上并不加载记录,它只会返回存储中已有的记录。您可能想做的是类似...
App.BooksRoute = Ember.Route.extend({
model: function() {
var id = 1;
// note: filters "books" properly but doesn't work in qunit
return Ember.RSVP.hash({
books: this.store.find('books').then(function(books){
return books.filterBy('libraryId', id)
}),
library: this.store.find('library', id)
});
}
});
(免责声明:上面的代码未经测试,但就是这个想法)
相关文章:
- 如何为requirejs和qunit设置grunt任务
- 用于在Test上打包资产以进行刮取测试的URL
- 运行Selenium Webdriver Test时,不会出现警报
- 是否有任何开源web应用程序具有良好的QUnit(或JSUnit)测试用例
- Mocha测试框架的test.describe返回值
- QUnit 测试错误与 IE(Internet Explorer)
- 如何使用gulp-test和karma在浏览器中调试Javascript测试文件
- QUnit嘲笑自动完成
- 是否可以模拟 qUnit 测试的窗口位置对象
- 为什么当我在正则表达式中放置空格键时,我的 Javascript test() 函数失败了
- RegEx.Test 返回总是假的
- 如何在 Javascript 和 qUnit 中模拟字符串函数
- 在多页$.mobile.changePage(“#test”)中不工作
- 使用qunit.js查询事件回调测试
- JavaScript Regexp.test返回意外结果
- node.js mocha test clearTimeout
- QUnit.test 在 for 循环中运行
- 在 Ember.RSVP.hash 中使用过滤器无法在 qunit test 中检索数据
- QUnit Test for knockout js failing: "ReferenceError: Vi
- QUnit XMLHttpRequest Test