Я использую TypeScript и пытаюсь сделать это без создания каких-либо модулей (то есть без операторов export
).Использование модулей потребовало бы использования SystemJS или AMD, и я стараюсь сделать свой проект максимально простым.
Я бы хотел создать модульные тесты, и кажется, что Mocha / Chai - самый популярный способсделать это.
У меня есть 3 файла:
// ../src/Cell.ts
class Cell {
public Z: number;
public Y: number;
public X: number;
constructor (z: number, y: number, x: number) {
this.Z = z;
this.Y = y;
this.X = x;
}
}
// ../src/Maze.ts
class Maze {
public myCell: Cell;
private width: number;
constructor (width: number) {
this.myCell = new Cell(-1, -1, -1);
}
protected directionModifier(cell: Cell, direction: string) {
// does something
}
}
// ../test/MazeTests.ts
let chai = require('chai');
import { expect } from 'chai';
var assert = require('assert');
var mocha = new Mocha();
mocha.addFile('../src/Cell.ts');
mocha.addFile('../src/Maze.ts');
describe('Maze Test Suite', function () {
it('should return a cell x-1 of the current location (1 cell to the south)', function () {
let myMaze = new Maze(4);
let myCell = new Cell(0,0,0);
const result = myMaze.directionModifier(myCell,"South");
assert.deepEqual(result, new Cell(0,1,0));
});
});
Я получаю несколько ошибок при запуске npm test
:
test/MazeTests.ts(42,20): error TS2304: Cannot find name 'Maze'.
test/MazeTests.ts(43,20): error TS2304: Cannot find name 'Cell'.
test/MazeTests.ts(47,38): error TS2304: Cannot find name 'Cell'.
Есть определенная возможность, я 'Я упускаю что-то очевидное.