簡體   English   中英

Typescript import module.exports 子函數

[英]Typescript import module.exports sub function

我正在使用 mocha 測試一個函數,但在運行測試文件時遇到錯誤。

文件結構如下

server
|-test
|  |-customer.test.ts
|-customer.js

這是customer.js文件功能

module.exports = (instance) => {
   instance.validate = async (ctx) => {
      // some code here 
   }
}

這是 mocha 測試用例文件 customer.test.ts

const instance =  require("../customer")

/* eslint-disable no-undef */
describe('customer', () => {
  describe('/POST customers', () => {
    it('Create Buy customer', (done) => {
      instance.validate({        
      })
      done();

    });
  })
});

但是當我使用命令mocha .\\customer.test.ts運行文件時,它顯示了以下錯誤

TypeError: instance.validate is not a function

如何使上述函數執行?

您導出的內容與導入的內容不匹配。 問題是(可能)出口。 你有的是這個:

module.exports = (instance) => {
   instance.validate = async (ctx) => {
      // some code here 
   }
}

這會導出一個函數,該函數在調用時會將validate方法添加到您傳遞給它的對象中。 與導出對象validate方法,即是這樣的:

module.exports = {
   validate: async (ctx) => {
      // some code here 
   },
};

因此,您需要修復導出(我懷疑是問題所在),或者(如果導出真的要這樣做),通過傳入一個對象然后檢查它實際執行的操作,然后在調用后檢查對象有一個validate方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM