gpt4 book ai didi

ember.js - ember-qunit: 你只能卸载一个不是 inFlight 的记录

转载 作者:行者123 更新时间:2023-12-03 20:57:24 26 4
gpt4 key购买 nike

我有一些访问商店的单元测试。我会认为这会很好,只要我将它们包装在运行回调中。不幸的是,情况并非如此。我收到此错误:

afterEach 在 #foo 上失败:断言失败:您只能卸载不在飞行中的记录。

据我了解,这正是 run应该是预防。我的测试看起来像这样:

test('#foo', function(assert) {
var store = this.store();
var model = this.subject();

Ember.run(function() {
var secondModel = store.createRecord('secondModel', { foo: 'bar' });
model.set('secondModel', secondModel);
var foo = model.get('secondModelFoo');

assert.equal(foo, 'bar');
});
});

最佳答案

似乎这不再是 Ember Data v1.13.8 与 Ember v1.13.7 结合的问题。

对于以下设置:

模型/第一个model.js

import DS from 'ember-data';

export default DS.Model.extend({
secondModel: DS.belongsTo('second-model')
});

模型/第二个model.js
import DS from 'ember-data';

export default DS.Model.extend({
foo: DS.attr('string')
});

测试/单元/模型/第一个模型-test.js
import Ember from 'ember';
import { moduleForModel, test } from 'ember-qunit';

moduleForModel('first-model', 'Unit | Model | first model', {
// Specify the other units that are required for this test.
needs: ['model:second-model']
});

test('it exists', function(assert) {
var model = this.subject();
// var store = this.store();
assert.ok(!!model);
});

test('#foo', function(assert) {
var store = this.store();
var model = this.subject();

Ember.run(function() {
assert.expect(1);

var secondModel = store.createRecord('second-model', { foo: 'bar' });
model.set('secondModel', secondModel);
var foo = model.get('secondModel.foo');

assert.equal(foo, 'bar');
});
});

测试通过。 Demo project repository on GitHub.

关于ember.js - ember-qunit: 你只能卸载一个不是 inFlight 的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28905948/

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