0

私はnode.jsを初めて使用し、モカテストスイートを追加するプロジェクトで協力しようとしています。現時点で私が抱えている問題は次のとおりです

ReferenceError: Board is not defined
at new Game (/Users/.../dr_mojo/public/javascripts/game.js:8:20)
at Context.<anonymous> (/Users/.../dr_mojo/test/test.game.js:13:17)
at Test.Runnable.run (/usr/local/lib/node_modules/mocha/lib/runnable.js:213:32)
at Runner.runTest (/usr/local/lib/node_modules/mocha/lib/runner.js:343:10)
at Runner.runTests.next (/usr/local/lib/node_modules/mocha/lib/runner.js:389:12)
. . .

私のテストを実行するとき

$> mocha -u tdd test/test.game.js --reporter spec

public/javascripts/board.js

function Board(width, height) {
  this.board = new Array(width);
  this.width = width;
  this.height = height;
  for( var i = 0; i < width ; ++i) {
    this.board[i] = new Array(height);
  }
}
...
if(typeof module != 'undefined') {
  module.exports.Board = Board;
}

public/javascripts/game.js

function Game(lvl, speed, music) {
  this.initial = { ... };
  this.board = new Board(board_size[0], board_size[1]);
  ...
}
...
if(typeof module != 'undefined') {
  module.exports.Game = Game;
}

テスト/test.game.js

var assert = require("assert");
var Board  = require(__dirname + "/../public/javascripts/board.js").Board;
var Pill   = require(__dirname + "/../public/javascripts/pill.js").Pill;
var Game   = require(__dirname + "/../public/javascripts/game.js").Game;

describe('Game', function(){
  it('Clears a row', function(){
    var game  = new Game();
    var pill1 = new Pill(game.board, game.detector, [ {x : 0 , y : 0 }, {x : 1, y : 0 } ],["red", "red"]);
    var pill2 = new Pill(game.board, game.detector, [ {x : 2 , y : 0 }, {x : 3, y : 0 } ],["red", "red"]);

    assert.equal(game.board.matches().length, 1);

    game.findMatches(function(){});
    assert.equal(game.board.matches().length, 0);
  })
})

サーバー.js

var express = require('express'),
    port    = 8888;

var app = express.createServer();

app.use(express.static(__dirname + '/public'));
app.set("view engine", "jade");
app.set('view options', { layout: false });

app.get('/play', function(req, res){
  res.render('play_game');
});

app.listen(port);

ご覧のとおり、エラーはgame.js:8、ゲームのプレイ中に問題なく動作することを考えると、適切に構成する方法がわからないということです。これは、問題なく動作することを意味しnew Game()、問題は、正しく構成していないことです。テストスイートから。どんな助けにも感謝します。前もって感謝します。

4

1 に答える 1