Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 从.findall()切换到.query()会中断集成测试_Ember.js_Ember Data_Ember Cli Mirage - Fatal编程技术网

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'));
});