2017-02-22 6 views
0

私は、モカのフレームワークをやや新しくしています。このコードでは例外がスローされますが、例外はスローされません。私は(もちろん「それ」行、「説明」およびなし)のNode.jsでストレートコードを実行すると、それはのような例外が発生し、興味深いことにモカの例外を発生させない後遺症関数

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 
     }); 
    }); 
}); 

を(単純化のためのテストですべてのコードを入れて)そうすべき。私はモカに若干新しいです、私は行方不明の非常にシンプルなものがありますか?

答えて

0

解決策が見つかりました。 」(https://mochajs.org/#getting-started)から:「コールバック(通常は「done」という名前)をit()に追加することで、Mochaはテストを完了するためにこの関数が呼び出されるのを待つ必要があることを認識します。

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'); 
     }); 
    }); 
}); 
関連する問題