Ember- 动作集成测试用例
Ember- integration test case on action
在ember控制器中
action:function(){
a:function(){
....
this.set('b',true);
}
}
我只是想为此写一个测试用例
test('a - function test case', function(assert) {
var controller= this.subject();
controller._action().a();
assert(controller.get(b),true);
});
但这不起作用我收到未定义的错误。
还有其他方法可以通过这个测试用例吗?
查看您的代码,我相信您正在尝试使用 ember actions,如果是这样,您必须使用 actions: { ... }
而不是 action: function() { ... }
。
要触发操作,您可以使用 send method。
这是一个关于如何在 ember-cli:
中测试动作的例子
app/controllers/index
import Ember from 'ember';
export default Ember.Controller.extend({
value: null,
actions: {
changeValue: function() {
this.set('value', true);
}
}
});
tests/unit/controllers/index-test.js
import {
moduleFor,
test
} from 'ember-qunit';
moduleFor('controller:index', {});
test('it exists', function(assert) {
var controller = this.subject();
assert.ok(!controller.get('value'));
controller.send('changeValue');
assert.ok(controller.get('value'));
});
这对我有用
test('it exists', function(assert) {
var controller = this.subject();
assert.ok(!controller.get('value'));
Ember.run(function(){
controller.send('changeValue');
assert.ok(controller.get('value'));
});
});
在ember控制器中
action:function(){
a:function(){
....
this.set('b',true);
}
}
我只是想为此写一个测试用例
test('a - function test case', function(assert) {
var controller= this.subject();
controller._action().a();
assert(controller.get(b),true);
});
但这不起作用我收到未定义的错误。
还有其他方法可以通过这个测试用例吗?
查看您的代码,我相信您正在尝试使用 ember actions,如果是这样,您必须使用 actions: { ... }
而不是 action: function() { ... }
。
要触发操作,您可以使用 send method。
这是一个关于如何在 ember-cli:
中测试动作的例子app/controllers/index
import Ember from 'ember';
export default Ember.Controller.extend({
value: null,
actions: {
changeValue: function() {
this.set('value', true);
}
}
});
tests/unit/controllers/index-test.js
import {
moduleFor,
test
} from 'ember-qunit';
moduleFor('controller:index', {});
test('it exists', function(assert) {
var controller = this.subject();
assert.ok(!controller.get('value'));
controller.send('changeValue');
assert.ok(controller.get('value'));
});
这对我有用
test('it exists', function(assert) {
var controller = this.subject();
assert.ok(!controller.get('value'));
Ember.run(function(){
controller.send('changeValue');
assert.ok(controller.get('value'));
});
});