Typescript 导入 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
方法。
我正在使用 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
方法。