Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Vue应用程序的业力测试_Javascript_Vue.js_Karma Webpack - Fatal编程技术网

Javascript Vue应用程序的业力测试

Javascript Vue应用程序的业力测试,javascript,vue.js,karma-webpack,Javascript,Vue.js,Karma Webpack,我必须在我的vue组件中测试一个函数-根据谁单击表中的行,该行应使用vue引导类重新绘制为其他颜色 setTransactionsSigns() { if (this.user.payload.isAdmin) { _.each(this.transactions, (transaction) => { transaction.signers = transaction.signers || []; let countSigner

我必须在我的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;
      });
    }
  }
它似乎工作不正常

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
Transactions.vue
✗ 应该获取{countSigners:2,countAdmins:2}并将颜色设置为绿色
正在尝试存根未定义的属性“SetTransactionSigns”
throwOnFalsyObject@/opt/CopyDocuments/fork fin/admin/node_modules/sinon/pkg/sinon.js:3017:96
存根@/opt/CopyDocuments/fork-fin/admin/node_modules/sinon/pkg/sinon.js:2849:29

webpack:///test/unit/specs/Transactions.spec.js:9:48 是的,问题在于sinon.stub。将CurrentTransactionSigns声明为对象{countSigners:2,countAdmins:2},该对象没有名为vm的属性。您应该只使用vm,因为它是事务组件的viewmodel。是的,我更改了它,但现在我得到了一个未定义的结果const setTransactionSignsStub=sinon.stub(vm,'setTransactionSigns');log(JSON.stringify(setTransactionsSignsStub));是的,因为您应该调用stubbed函数。您只需说const result=setTransactionSignsStub,而不调用它。请稍等。我想当我使用存根的时候我会叫它。好的,我怎么调用它呢?不,用stubing你只需说:“我用以下函数替换原始函数:{return'currentTransactionSigns'}”。您可以使用vm.setTransactionSignsStub()调用它。请注意,现在返回字符串“CurrentTransactionSigns”,而不是前面声明的变量值。
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