我想在一个页面中渲染我的组件测试,这样我就可以看到我在一些方法中插入的调试。
出于某种原因,我的测试似乎没有正确加载数据,我想看看它是什么加载。
不幸的是,QUnit只显示我放在asserts
中的内容,我想知道是否有办法在一个页面中看到我的测试被隔离,所以我可以看到控制台日志 。
这是测试的骨架:
import { moduleForComponent, test } from 'ember-qunit';
import hbs from 'htmlbars-inline-precompile';
import { clickTrigger } from 'frontend/tests/helpers/ember-power-select';
moduleForComponent('dynamic-input-field', 'Integration | Component | dynamic input field', {
integration: true
});
test('it renders', function(assert) {
// Set any properties with this.set('myProperty', 'value');
this.set(...);
// render the component
this.render(hbs`{{my-component myProperty}}`);
// actions of user here
clickTrigger(); //this opens the ember-power-select
assert.equal($('.ember-power-select-dropdown').length, 1, 'Dropdown is rendered');
// check if it is rendering the elements and if it is excluding one element
assert.equal('Field Four',$($('.ember-power-select-option')[2]).text().trim());
});
编辑:我找出了仅使用assert.equal()
的问题。它缺少一个$()
(jQuery函数)。例如:
assert.equal('Field Four',$($('.ember-power-select-option')[2]).text().trim());
看到渲染的组件,而不是assert.equal()
答案 0 :(得分:3)
尝试使用组件debugger;
statement内的didRender
lifecycle hook,如下所示:
export default Ember.Component.extend({
didRender() {
/* jshint ignore:start */
debugger;
/* jshint ignore:end */
},
// the rest of your code...
});
它会在集成测试中暂停代码执行,您可以在控制台中使用代码。如果您在浏览器中使用QUnit Runner,HTML渲染将暂停在跑步者的显示区域,您也可以检查它。
我已经创建了Ember Twiddle example来演示此解决方案。