javascript - 集成组件中的 Emberjs 链接到 href 测试

标签 javascript ember.js htmlbars integration-testing

我正在尝试测试 ember 组件中的链接到 href 属性。与 Ember 2.0 但是当我使用租户 hbs 渲染组件时,它会呈现以下内容:

<div id=\"23\" class=\"ember-view\">
<p><!----></p>
<div class=\"participantes\">
    <a id=\"ember282\" class=\"ember-view\">     
        <span>rnt-ayl-bld-js-jvr-frd-edw</span>
    </a>
</div>  

并且 href 属性未呈现, 我读到这是与路由器相关的内容,但我不确定如何将路由器包含在我尝试过的测试中:

moduleForComponent('conversation-item', 'Integration | Component | conversation item', {
integration: true,
setup(){
    const router = this.lookup('router:main');
    router.startRouting(true);
}

});

但是没有查找功能

TypeError: 'undefined' is not a function (evaluating 'container.lookup('router:main')')

最佳答案

您可能想看看这个问题 Ember Component Integration Tests: `link-to` href empty

虽然它是 1.13,但它可能对你有帮助。不幸的是,我正在使用 ember-mocha,但仍然遇到问题。

本质上,你已经很接近了,你只需要使用容器来查找路由器即可。

// tests/helpers/setup-router.js

export default function({ container }) {
  const router = container.lookup('router:main');
  router.startRouting(true);
}


// tests/integration/components/my-component-test.js

import { moduleForComponent, test } from 'ember-qunit';
import hbs from 'htmlbars-inline-precompile';
import setupRouter from '../../helpers/setup-router';

moduleForComponent('my-component', 'Integration | Component | my component', {
  integration: true,
  setup() {
    setupRouter(this);
  }
});

关于javascript - 集成组件中的 Emberjs 链接到 href 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34009486/

相关文章:

ember.js - Ember : control component behavior based on content of 'yield'

javascript - Controller 中的 Angularjs 过滤器。如何过滤非空、未定义和假值?

javascript - 如何使用jquery根据屏幕尺寸生成动态CSS

javascript 验证和 ajax 调用同时不起作用

javascript - 如何在带有 pushState 的 Backbone 中使用 SEO 友好的 URL?

javascript - 在 Ember.js 中与 iframe 通信

ember.js - Ember.js 中的自嵌套无限路由

javascript - Ember,如何为 "partial"和 "index"重用相同的 "show"

javascript - Ember.js 和 RequireJS

ember.js - 输入助手 valueBinding 已弃用 - 有什么替代方案?