gpt4 book ai didi

ember.js - 在 ember-cli 中测试扩展核心 ember 对象

转载 作者:行者123 更新时间:2023-12-03 06:25:42 28 4
gpt4 key购买 nike

我创建了一个 ember-cli 应用程序,我需要在其中扩展 ember-data 的默认存储。为此,我在 app/store.js 创建了一个文件,并简单地扩展了商店:

export default DS.Store.extend({
findOrCreateRecord: function(type, properties, preload) {
...
}
});

这非常有效,但是当我测试使用这种新方法的初始化程序时,我收到以下错误:

“undefined”不是函数(正在评估“store.findOrCreateRecord()”)我需要做些什么才能让我的测试在这里顺利进行吗?我正在测试的文件是下面的初始化程序:

export function initialize(container, app) {
var store = container.lookup('store:main');
app.deferReadiness();

store.findOrCreateRecord('order', basketToken).then(function(basket) {
container.register('basket:main', basket, { instantiate: false });
app.inject('controller:basket', 'model', 'basket:main');
app.advanceReadiness();
});
}

至于测试文件本身,它是 ember-cli 生成的默认文件,根本没有任何修改

最佳答案

由于在 ember 1.12 中引入了 ember 实例初始化程序,我的问题中的初始化程序将不再随着 ember 的开发而工作,因为在容器上调用 lookup 已被弃用。另外根据@tomdale,我使用 deferReadiness/advanceReadiness 是一种在初始化程序中提供同步性的黑客方法,不鼓励这样做。建议改用应用程序路由来实现该功能。

这解释得很好on GitHub

此外,在 ember-data 的最新版本中,存储已移至服务中。因此,我的自定义商店必须移至我的 ember-cli 项目的 services 文件夹中。因此,现在使用与 ember-cli 捆绑在一起的测试套件进行测试变得微不足道

关于ember.js - 在 ember-cli 中测试扩展核心 ember 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30392714/

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