gpt4 book ai didi

javascript - (初级)摩卡: How to test dependent classes?

转载 作者:行者123 更新时间:2023-12-03 04:23:05 24 4
gpt4 key购买 nike

我是 Mocha 新手,并尝试测试我的类(class)。我读过几篇文章,包括这两篇:

但我不知道如何让它对我有用:-/

我有两个类:

Fichier.js

function Fichier(path){

this.local_path = path;
this.local_data = NaN;
}
module.exports = Fichier

Arbre.js

function Arbre(chemin)
{
this.path = chemin ;
this.fichier = new Fichier(this.path);
this.noeuds = [];
this.fichier.lecture(this.make_structure, [this]);
}

Arbre-spec.js

'use strict';

var expect = require('chai').expect ;
var Fichier = require('./Fichier.js') ;

describe('Arbre', function() {

it('should exist', function()
{
var Fichier = require('./Fichier.js') ;
var Arbre = require('./Arbre.js' ) ;
expect(Arbre).to.not.be.undefined ;
});
});

问题是我的类“Arbre”依赖于类“Fichier”,该类未加载,正如测试的输出告诉我的那样:

$ mocha arbre-spec.js


Arbre
hello
1) should exist


0 passing (9ms)
1 failing

1) Arbre should exist:
ReferenceError: Fichier is not defined
at new Arbre (arbre.js:29:22)
at Object.<anonymous> (arbre.js:111:16)
at require (internal/module.js:12:17)
at Context.<anonymous> (arbre-spec.js:13:49)

我应该如何导入“Fichier”来进行测试运行?

编辑

在我添加的评论之后:在 Arbre.js 中要求:

require ("./Fichier.js")
require ("./Noeud.js")
require ("./Feuille.js")

我仍然有错误:

//Arbre-spec.js
'use strict';

var expect = require('chai').expect ;

describe('Arbre', function()
{
it('should exist', function()
{
var Arbre = require('./Arbre.js' ) ;
expect(Arbre).to.not.be.undefined ;
});
it('', function()
{
var Arbre = require('./Arbre.js' ) ;
console.log(Arbre)
expect(new Arbre("")).to.not.be.undefined ;
});
});

在 Arbre.js 函数中给了我一个错误:

$ mocha Arbre-spec.js


Arbre
✓ should exist
[Function: Arbre]
1)


1 passing (18ms)
1 failing

1) Arbre :
ReferenceError: Fichier is not defined
at new Arbre (Arbre.js:27:22)
at Context.<anonymous> (Arbre-spec.js:17:47)

拥有Arbre.js:

require ("./Fichier.js")
require ("./Noeud.js")
require ("./Feuille.js")
function Arbre(chemin)
{
this.path = chemin ;
this.fichier = new Fichier(this.path);
this.noeuds = [];
this.fichier.lecture(this.make_structure, [this]);


}

最佳答案

您需要分配 require 调用才能使其正常工作。

Arbre.js 为例

var Fichier = require ("./Fichier.js");
var Noeud = require ("./Noeud.js");
var Feuille = require ("./Feuille.js");

function Arbre(chemin)
{
this.path = chemin ;
this.fichier = new Fichier(this.path);
this.noeuds = [];
this.fichier.lecture(this.make_structure, [this]);


}

您可以将 modules.exports 视为未命名的值(该值可以是 Fichier.js 或其他内容中的函数),并将其分配给使用require时的变量,你给它一个名字!否则,程序将崩溃,并提示您引用了当前作用域中不存在的内容。

关于javascript - (初级)摩卡: How to test dependent classes?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43857498/

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