我有一个简单的对象(在app/models/fruit.js
中),它有一个静态方法:
import Ember from 'ember';
const Fruit = Ember.Object.extend({
});
Fruit.reopenClass({
createFruit() {
}
}
export default Fruit;
我有一个测试(在tests/unit/models/fruit-test.js
中):
import Ember from 'ember';
import { moduleFor, test } from 'ember-qunit';
moduleFor('model:fruit', 'Unit | Model | fruit', {
});
test('has static method', function(assert) {
let model = this.subject();
assert.ok(model.createFruit);
});
这正确地失败了因为 - 据我所知 - model
是我班级的实际实例,而不是班级本身。
测试助手为我们提供了一些便利,例如处理查找的主题函数和我们测试对象的实例化。
您无法直接访问组件实例。
那么我如何测试类函数/属性而不仅仅是实例方法/属性?
答案 0 :(得分:2)
对此的简单回答是简单地将类直接导入测试文件:
import Ember from 'ember';
import { moduleFor, test } from 'ember-qunit';
import Fruit from 'myapp/models/fruit';
moduleFor('model:fruit', 'Unit | Model | fruit');
test('has static method', function(assert) {
assert.ok(Fruit.createFruit);
});
我认为这个类可能会保存在this
的某处,但这是一个更简单的方法