jquery 命令在 ember.js 中使用 hbs 渲染的测试中不起作用
jquery commands not working in tests using hbs rendering in ember.js
我一直致力于在 Ember.js 2.5 中编写自己的组件测试。我目前正在尝试测试按下按钮时的 属性 更改。测试可以 运行 正常并且不会抛出任何错误,但是测试中的 jquery 命令似乎不起作用。例如 this.$('button').click();
我已经按照此处的指南进行操作,https://guides.emberjs.com/v2.5.0/testing/testing-components/,甚至完全按照他们所做的进行操作 - 相同的组件名称和所有内容,但仍然一无所获。没有抛出任何错误,jquery 根本不起作用。
由于组件测试使用 htmlbars-inline-precompile 插件来呈现组件,我已确保遵循该 repo 上的所有说明。 Babel 已更新,Bower 已安装所有必要的先决条件。
这里是请求的测试代码
test('it closes', function(assert) {
this.render(hbs`{{modals/personal-information}}`);
//making sure the property is set correctly before test
this.set('isOpen', true);
this.$('button').close();
assert.equal('isOpen', false);
}
这是在 Kitler 的帮助下回答的。
我没有在渲染组件本身上设置 属性,而是在测试上设置。一旦我了解了如何在呈现的组件本身上设置和检索属性,我的测试就可以完美运行。
我遵循了这个指南,Ember component integration tests
这是我的新代码示例。
test('it closes', function(assert) {
assert.expect(1);
this.set('open', true);
this.render(hbs`{{modals/personal-information isOpen=open id="modal"}}`);
var $button = this.$('#modal button');
$button.click();
assert.equal(this.get('open'), false);
});
我一直致力于在 Ember.js 2.5 中编写自己的组件测试。我目前正在尝试测试按下按钮时的 属性 更改。测试可以 运行 正常并且不会抛出任何错误,但是测试中的 jquery 命令似乎不起作用。例如 this.$('button').click();
我已经按照此处的指南进行操作,https://guides.emberjs.com/v2.5.0/testing/testing-components/,甚至完全按照他们所做的进行操作 - 相同的组件名称和所有内容,但仍然一无所获。没有抛出任何错误,jquery 根本不起作用。
由于组件测试使用 htmlbars-inline-precompile 插件来呈现组件,我已确保遵循该 repo 上的所有说明。 Babel 已更新,Bower 已安装所有必要的先决条件。
这里是请求的测试代码
test('it closes', function(assert) {
this.render(hbs`{{modals/personal-information}}`);
//making sure the property is set correctly before test
this.set('isOpen', true);
this.$('button').close();
assert.equal('isOpen', false);
}
这是在 Kitler 的帮助下回答的。
我没有在渲染组件本身上设置 属性,而是在测试上设置。一旦我了解了如何在呈现的组件本身上设置和检索属性,我的测试就可以完美运行。
我遵循了这个指南,Ember component integration tests
这是我的新代码示例。
test('it closes', function(assert) {
assert.expect(1);
this.set('open', true);
this.render(hbs`{{modals/personal-information isOpen=open id="modal"}}`);
var $button = this.$('#modal button');
$button.click();
assert.equal(this.get('open'), false);
});