2017-02-22 3 views
0

Ich bin etwas neu in den Mocha-Framework. Dieser Code sollte eine Ausnahme auslösen, tut dies aber nicht. (Put den gesamten Code in dem Test der Einfachheit halber)Sequelize-Funktion keine Ausnahme in Mocha

describe("Test", function() { 
    it("this should throw an error", function() { 
     var Sequelize = require("sequelize"); 
     var sequelize = new Sequelize({ 
      dialect: 'sqlite', 
      storage: 'test.sqlite3' 
     }); 
     var foo = sequelize.define('Foo', { 
      var_a: Sequelize.INTEGER, 
      var_b: Sequelize.STRING 
     }); 
     sequelize.sync().then(function(err) { 
      throw('should throw an error here); // !!! Should throw an exception here 
     }); 
    }); 
}); 

Interessant ist, wenn ich den Code direkt in node.js (ohne die „beschreiben“ und „es“ Linien, natürlich) laufen, es löst eine Ausnahme wie es sollte. Ich bin etwas neu zu Mokka, gibt es etwas unglaublich einfaches, dass ich vermisse?

Antwort

0

Die Lösung gefunden. From (https://mochajs.org/#getting-started): "Durch Hinzufügen eines Callbacks (normalerweise" done "genannt) zu it(), wird Mocha wissen, dass es darauf warten sollte, dass diese Funktion aufgerufen wird, um den Test abzuschließen."

describe("Test", function() { 
    it("this should throw an error", function(done) { 
     var Sequelize = require("sequelize"); 
     var sequelize = new Sequelize({ 
      dialect: 'sqlite', 
      storage: 'db/test_db.sqlite3' 
     }); 
     var foo = sequelize.define('Foo', { 
      var_a: Sequelize.INTEGER, 
      var_b: Sequelize.STRING 
     }); 
     sequelize.sync().then(function(err) { 
      done(); 
      throw('got here'); 
     }); 
    }); 
});