- How can I test uncaught errors in mocha?
- function throwNextTick(error) {
- process.nextTick(function () {
- throw error;
- });
- }
- describe("throwNextTick", function () {
- it("works as expected", function (next) {
- var error = new Error("boo!");
- var recordedError = null;
- process.once("uncaughtException", function (error) {
- recordedError = error;
- });
- throwNextTick(error);
- process.nextTick(function () {
- recordedError.should.be(error);
- next();
- });
- });
- });
- C:UsersddenicolaProgramming (Synced)pubit>mocha test/basicTest.js
- throwNextTick
- 0) works as expected
- ? 1 of 1 tests failed:
- 1) throwNextTick works as expected:
- Error: boo!
- at Test.fn (C:UsersddenicolaProgramming (Synced)pubittestbasicTest.js:11:21)
- at Test.run (C:UsersddenicolaAppDataRoamingnpmnode_modulesmochalibrunnable.js:144:15)
- at Runner.runTest (C:UsersddenicolaAppDataRoamingnpmnode_modulesmochalibrunner.js:271:10)
- at C:UsersddenicolaAppDataRoamingnpmnode_modulesmochalibrunner.js:315:12
- at next (C:UsersddenicolaAppDataRoamingnpmnode_modulesmochalibrunner.js:199:14)
- at C:UsersddenicolaAppDataRoamingnpmnode_modulesmochalibrunner.js:208:7
- at next (C:UsersddenicolaAppDataRoamingnpmnode_modulesmochalibrunner.js:157:23)
- at Array.0 (C:UsersddenicolaAppDataRoamingnpmnode_modulesmochalibrunner.js:176:5)
- at EventEmitter._tickCallback (node.js:192:40)
- var assert = require('assert')
- function throwNextTick(error) {
- process.nextTick(function () {
- throw error
- })
- }
- describe("throwNextTick", function () {
- it("works as expected", function (next) {
- var error = new Error("boo!")
- var recordedError = null
- var originalException = process.listeners('uncaughtException').pop()
- process.once("uncaughtException", function (error) {
- recordedError = error
- })
- throwNextTick(error);
- process.nextTick(function () {
- process.listeners('uncaughtException').push(originalException)
- assert.equal(recordedError, error)
- next()
- })
- })
- })