首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Ember集成测试期间调试呈现的HTML和代码

在Ember集成测试期间调试呈现的HTML和代码
EN

Stack Overflow用户
提问于 2016-12-02 16:59:52
回答 1查看 939关注 0票数 2

我希望在一个页面中呈现我的组件的测试,这样我就可以看到在某些方法中插入的调试。

由于某些原因,我的测试似乎没有正确地加载数据,我想看看它正在加载什么。

不幸的是,QUnit只向我展示了我在asserts中所放的内容,我想知道是否有一种方法可以将我的测试隔离在一个页面中,这样我就可以看到控制台日志

这是测试的骨架:

代码语言:javascript
复制
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函数)。示例:

代码语言:javascript
复制
assert.equal('Field Four',$($('.ember-power-select-option')[2]).text().trim());

看到呈现的组件,而不是使用assert.equal()仍然很好。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-02 18:34:38

尝试在组件的语句中使用生命周期钩,如下所示:

代码语言:javascript
复制
export default Ember.Component.extend({
  didRender() {
    /* jshint ignore:start */
    debugger;
    /* jshint ignore:end */
  },

  // the rest of your code...
});

它将在集成测试中暂停代码执行,您可以在控制台中使用您的代码。如果您在浏览器中使用QUnit运行程序,则将在Runner的显示区域暂停HTML呈现,您也可以检查它。

我创建了一个Ember示例来演示这个解决方案。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40937366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档