David Weldon の投稿には同意しますが、いくつかの例を追加します。
通常どおり Node モジュールを作成する必要があります。コードの他の部分で使用される可能性のある電卓を作成している場合、電卓モジュールは次のようになります。
Calculator = {
add: function(a, b) {
return a + b;
}
};
module.exports = Calculator;
module.exports
あなたは、使用することはコストがかかり、邪魔に見えると述べています。これについてできることがいくつかあります。module.exports
別のファイルでコードにアクセスできるようにするための最良かつ推奨される方法です。簡単にするために、電卓で行ったように関数と変数をオブジェクトにラップし、1 つのオブジェクトのみをエクスポートできます。
「エクスポート」を使用するには 2 つの方法があることに注意してください。あなたはこれを行うことができます:
var a = function() { ... };
var b = 10;
var c = null;
exports.a = a;
exports.b = b;
exports.c = c;
exports
モジュールの特別なオブジェクトに何かを追加します。または、これを行うことができます:
objectToExport = {
a: function() { ... },
b: 10,
c: null
};
module.exports = objectToExport;
オブジェクトを置き換えるものexports
。そうした場合、それは機能せず、別のファイルでモジュールexports = objectToExport
を試みたときに空のオブジェクトになってしまいます。require
test
Mocha でテストするときは、コード ディレクトリの構造を反映したディレクトリにすべてのテスト ファイルを置きます。
project
+- lib
+- calculator.js
+- test
+- lib
+- calculator.js
私のtest/lib/calculator.jsファイルは、lib/calculator.jsファイルのMochaテストです
var Calculator = require('../../lib/calculator.js');
var assert = require('assert');
describe('Calculator', function() {
describe('add', function() {
it('should add two numbers', function() {
var res = Calculator.add(2,2);
assert.equal(res, 4);
});
});
});
デフォルトでは、mocha は/test
mocha を実行するディレクトリ内のディレクトリを探します。上記の例のようなサブディレクトリがある場合は--recursive
、コマンド ラインに追加して、すべてのテストを見つけることができます。したがって、上記のディレクトリで実行している場合project
、コマンドはmocha --recursive
.