Search the Community
Showing results for tags 'mocha'.
-
I'm using Typescript with Phaser and I'd like to get some command-line tests running. I think I should be able to do this with node/mocha, but I'm having difficulty. I've got the following files; MyClass.ts /// <reference path="node_modules/phaser/typescript/phaser.d.ts" /> export class MyClass { d: Phaser.Sprite; constructor() { this.d = new Phaser.Sprite(new Phaser.Game, 10, 10); } win() : boolean { return true; } } test.ts /// <reference path="../typings/mocha/mocha.d.ts" /> import MyModule = require('../MyClass'); describe('MyClass', () => { var subject : MyModule.MyClass; beforeEach(function () { subject = new MyModule.MyClass(); }); describe('#win', () => { it('should pass', () => { var result : boolean = subject.win(); if (result !== true) { throw new Error('Expected true but was ' + result); } }); }); }); I'm using ts-node to execute typescript in node so I execute mocha as follows; mocha --compilers ts:ts-node/register Compilation is successful, however the tests then fail at runtime because Phaser is not defined; MyClass #win 1) "before each" hook for "should pass" 0 passing (47ms) 1 failing 1) MyClass "before each" hook for "should pass": ReferenceError: Phaser is not defined at new MyClass (c:\Users\stafford\Documents\git\ts-node-test\MyClass.ts:5:22) at Context.<anonymous> (c:\Users\stafford\Documents\git\ts-node-test\test\test.ts:8:19) at callFn (C:\Users\stafford\AppData\Roaming\npm\node_modules\mocha\lib\runnable.js:286:21) at Hook.Runnable.run (C:\Users\stafford\AppData\Roaming\npm\node_modules\mocha\lib\runnable.js:279:7) at next (C:\Users\stafford\AppData\Roaming\npm\node_modules\mocha\lib\runner.js:297:10) at Immediate._onImmediate (C:\Users\stafford\AppData\Roaming\npm\node_modules\mocha\lib\runner.js:319:5) I thought I would then have to do something like this or similar; import Phaser = require('phaser'); But this then breaks compilation with the error phaser.d.ts is not a module. Has anyone had success testing in this way? What am I doing wrong? Or, perhaps if this is not possible, does anyone have another method of testing typescript objects that reference Phaser? There's a small repro here if anyone's interested.