Ember.js 从.findall()切换到.query()会中断集成测试
我有一个组件,它调用如下内容:Ember.js 从.findall()切换到.query()会中断集成测试,ember.js,ember-data,ember-cli-mirage,Ember.js,Ember Data,Ember Cli Mirage,我有一个组件,它调用如下内容: this.get('store') .findAll('calendar-event') .then((data) => { // do stuff }); 然而,当我用query()替换findAll()时,它破坏了我的集成测试 this.get('store') .query('calendar-event', { some_stuff: [596] }) .then((data) => { // do stu
this.get('store')
.findAll('calendar-event')
.then((data) => {
// do stuff
});
然而,当我用query()
替换findAll()
时,它破坏了我的集成测试
this.get('store')
.query('calendar-event', { some_stuff: [596] })
.then((data) => {
// do stuff
});
通过ember服务器
在web浏览器中的应用程序继续正常运行。但是:集成测试没有运气。我得到的错误是:TypeError:无法读取null的属性“setObjects”
集成测试看起来像:
你知道为什么它会在服务器端呈现,而不是在集成测试端吗。对于
ember服务器
是否也在运行幻影,或者你是在代理后端?您可以在测试开始时使用server.logging=true
,以确保HTTP响应正确。最后,如果您的集成测试是异步的,您可能需要使用wait()
。Hi@SamSelikoff-ember-server
正在使用mirage(工作),而ember-server--proxy
使用真正的API(也工作);然而,ember测试——服务器
抛出错误。然而,正是wait()
起了作用。我可以回答我自己的问题,或者如果你想把你的答案移到那里,我会把它标记为已接受的答案。为什么findAll()!使用ember服务器
时,Mirage是否也在运行,或者您是否代理到后端?您可以在测试开始时使用server.logging=true
,以确保HTTP响应正确。最后,如果您的集成测试是异步的,您可能需要使用wait()
。Hi@SamSelikoff-ember-server
正在使用mirage(工作),而ember-server--proxy
使用真正的API(也工作);然而,ember测试——服务器
抛出错误。然而,正是wait()
起了作用。我可以回答我自己的问题,或者如果你想把你的答案移到那里,我会把它标记为已接受的答案。为什么findAll()!
import { moduleForComponent, test } from 'ember-qunit';
import hbs from 'htmlbars-inline-precompile';
import moment from 'moment';
import startMirage from '../../helpers/setup-mirage-for-integration';
moduleForComponent('main-calendar', 'Integration | Component | main calendar', {
integration: true,
beforeEach() {
startMirage(this.container);
},
afterEach() {
window.server.shutdown();
}
});
test('it renders', function (assert) {
this.render(hbs`{{main-calendar}}`);
assert.equal(this.$('.col-sm.text-center').text().trim(), moment().format('MMMM YYYY'));
});