Vue应用的业力测试

时间:2018-08-29 13:05:13

标签: javascript vue.js karma-webpack

我必须在vue组件中测试一个功能-取决于谁单击表中的行,应使用vue引导程序类将该行重新绘制为其他颜色。

   setTransactionsSigns() {
    if (this.user.payload.isAdmin) {
      _.each(this.transactions, (transaction) => {
        transaction.signers = transaction.signers || [];

        let countSigners = transaction.signers.filter(s => 
        s.signed).length;
        let countAdmins = transaction.signers.length;
        if (countAdmins >= 1 && countAdmins === countSigners) {
          transaction._rowVariant = 'success';
        } else if (countAdmins >= 1 && countSigners >= 1 && 
          countAdmins > countSigners) {
          transaction._rowVariant = 'warning';
        } else if (countSigners >= 1 && countAdmins < countSigners) {
          transaction._rowVariant = 'info';
        } else {
          transaction.canEdit = true;
        }

        transaction.canEdit = countSigners <= 0;
      });
    }
  }

我用业力测试框架编写了第一个测试:

  import Vue from 'vue';
  import Transactions from '@/components/Transactions';

  describe('Transactions.vue', () => {
  it('should get { countSigners: 2, countAdmins: 2 } and set color to 
  green', () => {
  const Constructor = Vue.extend(Transactions);
  const vm = new Constructor().$mount();
  const currentTransactionsSigns = { countSigners: 2, countAdmins: 2 
  };
  const setTransactionsSignsStub = 
  sinon.stub(currentTransactionsSigns.vm, 
  'setTransactionsSigns').returns('currentTransactionsSigns');
  const result = setTransactionsSignsStub;
  expect((result).to.be.true);
  expect(vm.$el.querySelector('.table-wrap').to.have.class('.table- 
  success'));
   });
 });

似乎无法正常工作。

Transactions.vue
    ✗ should get { countSigners: 2, countAdmins: 2 } and set color to green
        Trying to stub property 'setTransactionsSigns' of undefined
        throwOnFalsyObject@/opt/CopyDocuments/fork-fin/admin/node_modules/sinon/pkg/sinon.js:3017:96
        stub@/opt/CopyDocuments/fork-fin/admin/node_modules/sinon/pkg/sinon.js:2849:29
        webpack:///test/unit/specs/Transactions.spec.js:9:48 <- index.js:114772:46

我想sinon.stub的主要问题。看来我会尝试向其中传输错误的数据。

0 个答案:

没有答案