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

时间:2015-11-30 22:50:22

标签: javascript ember.js htmlbars integration-testing

我正在尝试在ember组件中测试link-to href属性。与ember 2.0 但是当我使用renter 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'不是一个函数(评估   'container.lookup(' 路由器:主 ')')

1 个答案:

答案 0 :(得分:0)

您可能需要查看此问题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);
  }
});