gpt4 book ai didi

javascript - 如何导出 javascript 类以在测试单元中使用?

转载 作者:行者123 更新时间:2023-12-02 23:50:35 24 4
gpt4 key购买 nike

我正在开发自己的非图解算器实现。我正在用 javaScript 编写它,并想用 mocha 对其进行单元测试。我编写了自己的类,但不确定如何导出它以在测试文件中使用。

这是 test.js 文件。

const assert = require('chai').assert;
const script = require('../script');

describe('Clue Object', function() {
var result = script.Clue(10);

it('This should make a Clue object with lb: 10', function() {
assert.equal(result.lb, 10);
});
});

这是我的主脚本文件中的类。

var exports = module.exports = {};

//----------------------------------------------------------------
// Classes
//----------------------------------------------------------------

/**
* This is the Clue class. It creates a clue object.
*
* @constructor
* @param {number} x - the length of a black run.
* @property {number} lb - the length of the black run.
* @property {number} rS - the starting cell of the range.
* @property {number} rE - the ending cell of the range.
*/
exports.Clue = function(x) {
this.lb = x;
this.rS = null;
this.rE = null;

Clue.prototype.setLB = function(x) {
this.lb = x;
}
Clue.prototype.setRS = function(x) {
this.rS = x;
}
Clue.prototype.setRE = function(x) {
this.rE = x;
}
}

当我尝试运行测试时,我不断收到 TypeError: script.Clue is not a function。我对该错误有一点了解,但我仍然不确定如何使其正常工作。

测试是为了查看是否创建了 Clue 对象并在其中存储了数字。

最佳答案

您没有正确定义您的类。它应该如下所示:

function Clue(x) {
this.lb = x;
this.rS = null;
this.rE = null;
}
Clue.prototype.setLB = function(x) {
this.lb = x;
}
Clue.prototype.setRS = function(x) {
this.rS = x;
}
Clue.prototype.setRE = function(x) {
this.rE = x;
}

module.exports = {
Clue: Clue
}

请注意,lbrSrE 默认情况下是公共(public)的,您不需要显式 setter 。您可以使用更简单的 ECMAScript 2015 class notation 来简化一切:

class Clue {
constructor(x) {
this.lb = x;
this.rS = null;
this.rE = null;
}
}

module.exports = {
Clue: Clue;
}

关于javascript - 如何导出 javascript 类以在测试单元中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55666994/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com