我是Mocha的新手,并尝试通过测试我的课程来学习。 我看过几篇帖子,包括这两篇:
但我无法弄清楚如何让它适合我: - /
我有两个班级:
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:
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]);
}
答案 0 :(得分:1)
您需要为其分配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
时将其赋值给变量这个名字!否则,程序会崩溃,抱怨你指的是当前范围内不存在的东西。