我有以下Javascript类
var Score = function (roll, category) {
this.roll = [];
this.category = category;
};
Score.prototype.getRoll = function () {
return this.roll;
};
Score.prototype.ones = function() {
this.roll.filter((i) => i == 1)
.reduce((sum, i) => sum + i);
};
module.exports.Score = Score;
我正试图用Mocha和Chai测试:
var Score = require('../src/Score.js');
describe('Score', function() {
var score = new Score([1,2,3,4,5], this.ones);
expect(score).to.be.of.type(Score);
describe('ones', function() {
});
});
然而,我得到一个错误声称得分不是构造函数,这并不让我感到惊讶。我怀疑如何开发这种结构,如果有更好的方法来实现我的目标。如果不清楚:得分是一个类,当给定一个滚动和一个得分规则时将对特定游戏进行评分,后者是该函数的原型之一。谢谢你的建议。
答案 0 :(得分:1)
您的导出与导入不匹配。导出一个普通对象(full_name
),该对象具有一个名为module.exports
的属性,它是一个函数(构造函数)。但是另一个文件期望它导出构造函数本身。因此,要么将测试文件更改为Score
,要么将其他文件更改为var Score = require('../src/Score.js').Score;
。 (后者当然会影响导入此脚本的任何其他脚本。)