【问题标题】:Debug rendered HTML and code during an Ember integration test在 Ember 集成测试期间调试呈现的 HTML 和代码
【发布时间】:2016-12-02 16:59:52
【问题描述】:

我想在一页中呈现我的组件的测试,以便我可以看到我在某些方法中插入的调试。

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

不幸的是,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()

【问题讨论】:

    标签: javascript ember.js integration-testing qunit ember-testing


    【解决方案1】:

    尝试在组件的didRender lifecycle hook 中使用debugger; statement,如下所示:

    export default Ember.Component.extend({
      didRender() {
        /* jshint ignore:start */
        debugger;
        /* jshint ignore:end */
      },
    
      // the rest of your code...
    });
    

    它将在您的集成测试中暂停代码执行,您可以在控制台中处理您的代码。如果您在浏览器中使用 QUnit Runner,则 HTML 渲染将在 runner 的显示区域中暂停,您也可以对其进行检查。

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

    【讨论】:

    • 我没有运行验收测试。我正在尝试仅为我的组件创建测试。我正在通过this.render(hbs`{{my-component}}`) 渲染我的组件
    • 知道了。我已经更新了更合适的解决方案。
    • 我最后的建议是确保您的浏览器控制台已打开?它可以工作in this Ember Twiddle example
    • 天才!问题是我使用的是 FIREBUG。我用 ember 检查器打开了我的控制台,它开始工作了。非常感谢 jacefarm,您仔细检查了此问题的每一步并耐心等待。
    • 另一个避免问题的提示是使用/tests提供的过滤器。我是按模块过滤的,这样做也不起作用。
    猜你喜欢
    • 2016-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-22
    • 1970-01-01
    • 2011-06-02
    • 1970-01-01
    • 2015-03-09
    相关资源
    最近更新 更多