小编Mik*_*res的帖子

封闭动作的Ember集成测试

在Ember-CLI 1.13.1中,我在我的组件中进行了以下集成测试:

import { moduleForComponent, test } from 'ember-qunit';
import hbs from 'htmlbars-inline-precompile';

moduleForComponent('category-tabs', 'Integration | Component | category tabs', {
  integration: true
});

test('tapping button fires an external action', function(assert) {
  this.on('onTabTouch', function(value) {
    assert.equal(value, 'Expense');
  });

  this.render(hbs`
    {{category-tabs onTabTouch=(action "onTabTouch")}}
  `);

  this.$('button:first').click();
});
Run Code Online (Sandbox Code Playgroud)

然后在我的组件中,我有这个动作:

import Ember from 'ember';

export default Ember.Component.extend({
  actions: {
    handleTabTouch(tab) {
      this.attrs.onTabTouch(tab);
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

我的测试继续这样说:

在[object Object]中找不到名为'onTabTouch'的动作.

如何测试闭包动作?我也尝试过:

this.set('onTabTouch', function(value) {
  assert.equal(value, 'Expense');
});
Run Code Online (Sandbox Code Playgroud)

它没有用.

javascript ember.js

9
推荐指数
1
解决办法
1113
查看次数

标签 统计

ember.js ×1

javascript ×1