我已经建立了一个小型Ember应用程序。它有一个控制器,它有一个名为changeStatus(id)的动作。此方法访问存储并尝试更改属性值。我对Ember来说比较新。我不知道最好的方法是用集成测试还是单元测试来测试它?以及如何以任何一种方式进行测试。
以下是示例代码
控制器:user.js
import Ember from 'ember';
export default Ember.Controller.extend({
actions: {
changeStatus(id) {
const oUser = this.store.peekRecord('user', id),
let bCurrentValue = oUser.get('active');
if (bCurrentValue) {
oUser.set('active', false);
} else {
oUser.set('active', true);
}
//oUser.save();
},
}
});
型号:user.js
import Model from 'ember-data/model';
import attr from 'ember-data/attr';
export default PatientIndexController;
import Model from 'ember-data/model';
import attr from 'ember-data/attr';
export default Model.extend({
active: attr('boolean'),
});
单元测试:user-test.js
import {moduleFor, test} from 'ember-qunit';
import Ember from 'ember';
moduleFor('controller:user', 'Unit | Controller | user', { });
test('Toggle user active status', function (assert) {
const contollerUser = this.subject();
contollerUser.send('changeStatus', 1);
assert.equal(contollerUser.store.peekRecord('user', 1).get('active'), 'true or false');
});
但我没有得到如何设置一些数据来存储。当我调用函数changeStatus()时,它不知道用户模型。
如何设置正确的测试。提前谢谢。