首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用子组件编写Ember.js组件集成测试

用子组件编写Ember.js组件集成测试
EN

Stack Overflow用户
提问于 2015-08-15 05:56:23
回答 1查看 757关注 0票数 0

我正在尝试遵循Alisdar's新的集成测试,而不是对我的ember组件进行单元测试。

我真的很喜欢这种新的方法,但在测试调用视图中另一个组件的组件时,我遇到了一个问题。

alpha组件:

代码语言:javascript
复制
App.TestAlphaComponent = Ember.Component.extend({
  listWords: []
});

alpha组件视图使用beta组件:

代码语言:javascript
复制
{{#each listNumbers as num}}
  {{test-beta word=num}}
{{/each}}

测试版组件:

代码语言:javascript
复制
App.TestBetaComponent = Ember.Component.extend({
  word: 'hello world' 
});

测试版组件视图:

代码语言:javascript
复制
<h1>{{ word }} </h2>

TestAlphaComponent的Mocha Chai集成测试

代码语言:javascript
复制
import Ember from 'ember';
import { expect } from 'chai';
import {
  describeComponent,
  it
} from 'ember-mocha';
import hbs from 'htmlbars-inline-precompile';
import tHelper from "ember-i18n/helper";
import testBeta from "app/components/test-beta";

var foo;

describeComponent(
  'test-alpha',
  'Integration: testAlphaComponent',
  {
    integration: true
  },
  function() {
    beforeEach(function () {
      this.container.lookup('service:i18n').set('locale', 'en');
      this.registry.register('helper:t', tHelper);
      this.registry.register(
        'component:test-beta',
        testBeta
      );

      Ember.run(this, 'set','foo', ['foo','bar','baz']);
      this.render(hbs`{{test-alpha listWords=foo}}`);
    });
    it('prints foo bar baz in h1s', function() {
        expect($('h1').to.have.length(3);
    });
  });
);

我的测试失败了。testBeta永远不会被调用,也不会抱怨缺少组件。将testBetaComponent注入testAlpha的集成测试环境的正确方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2015-08-16 18:19:35

组件的名称中需要有破折号。添加破折号后,将自动添加子组件。请参阅备注:

http://guides.emberjs.com/v1.13.0/components/defining-a-component/

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

https://stackoverflow.com/questions/32019221

复制
相关文章

相似问题

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