Haxe bindings for mocha.js & expect.js - simple, flexible, fun javascript test framework for node.js & the browser. (BDD, TDD, QUnit styles via interfaces)
JavaScript Haxe
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src/js
test
.gitignore
MIT.LICENSE
README.md
build-node.hxml
build.hxml
mocha.js-haxe.hxproj

README.md

#mocha.js-haxe

Haxe bindings for mocha.js & expect.js - simple, flexible, fun javascript test framework for node.js & the browser. (BDD, TDD, QUnit styles via interfaces)

Tested with Haxe 3.0, mocha.js 1.8.1, expect.js 0.2.0, Node.js and Chrome.

GitHub -> https://github.com/rjanicek/mocha.js-haxe
browser tests -> http://rjanicek.github.com/mocha.js-haxe
mocha.js by TJ Holowaychuck - MIT. -> https://github.com/visionmedia/mocha
expect.js by Guillermo Rauch - MIT. -> https://github.com/LearnBoost/expect.js

Use test as a template for new projects.

###browser

class Main {
	static function main() {
		Mocha.setup( { ui: Ui.BDD } );
		new MochaSpec();
		Mocha.run();
	}
}

###node

class Main {
	static function main() {
		new MochaSpec();
	}
}

###test

class MochaSpec {
	public function new() {
		M.describe("Mocha", function () {
			M.it("should test things", function() {
				E.expect(true).to.be.ok();
				true.should().be.ok();
				E.expect(0).to.not.be.ok();
				E.expect(1).toBe(1);
				E.expect(true).to.equal(true);
				E.expect(1).to.eql("1");
				E.expect(5).to.be.a("number");
				E.expect("1.2.3").to.match("[0-9]+\\.[0-9]+\\.[0-9]+");
				E.expect("hello world").to.contain("world");
				E.expect([]).to.have.length(0);
				E.expect([]).to.be.empty();
				E.expect( { a: "b" } ).to.have.property("a", "b");
				E.expect( { a: "b", c: "d" } ).to.only.have.keys("a", "c");
				E.expect(function() { throw "knife"; } ).to.throwException();
				E.expect(1).to.be.within(0, Math.POSITIVE_INFINITY);
				E.expect(5).to.be.greaterThan(3);
				E.expect(1).to.be.lessThan(3);
				E.expect(5).to.be.a("number").and.toBe(5);
			});
		});
	}
}

###async

class AsyncSpec {
	public function new() {
		M.it("should test asynchronous code", function(done) {
			var mochaIsCool = 0;
			Timer.delay(function() {
				mochaIsCool++;
				mochaIsCool.should().equal(1);
				done();
			}, 250);
			mochaIsCool.should().equal(0);
		});
	}
}