我正在使用"chai": "^4.2.0",
和"mocha": "^4.0.1"
。我正在运行node --version
,v10.15.3
,我的目标是测试服务层:
我的ProductService.js
如下所示:
class ProductService {
constructor() {
// constructor
}
async createOrUpdateProduct(dataArray) {
return "done"
}
}
module.exports = {
ProductService
};
我的测试类ProductTestService.js
如下所示:
const assert = require('chai').assert;
const ProductService = require('../Service/ProductService')
describe('Product model', () => {
it('should add the test data with the Products Service to the Product table', async () => {
let dataArr = "product data"
let productServ = new ProductService()
const res = await productServ.createOrUpdateProduct(dataArr)
assert.isOk(res.length, dataArr.length);
});
});
运行测试时,我得到:
关于为什么实例化不起作用的任何建议?
感谢您的答复!
答案 0 :(得分:1)
代码
module.exports = {
ProductService
};
是简写
module.exports = {
ProductService: ProductService
};
这意味着,当您使用以下方式导入模块时
const ProductService = require('../Service/ProductService');
ProductService
的值正是您导出的值,即具有属性ProductService的对象。
{
ProductService: ProductService
}
要解决您的问题,请直接导出类(如果这是您要从模块中导出的唯一内容)
module.exports = ProductService;
如果您还想导出其他内容,则可以使用对象分解来导入
const { ProductService } = require('../Service/ProductService');