使用ember-qunit控制器操作进行单元测试,访问商店和方法

时间:2016-08-19 13:34:23

标签: ember.js ember-data ember-qunit

我已经建立了一个小型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()时,它不知道用户模型。

如何设置正确的测试。提前谢谢。

0 个答案:

没有答案