摩卡testing表示启动

如果缺less参数(例如数据库URI),我的快速服务器会抛出一个错误。 我想在摩卡testing它实际上抛出了错误,但我不知道如何让摩卡这样做。

if(!parameters.db) { throw new Error('Please provide a db URI'); } 

我有一个像这样的testing设置:

 it('Throws Error when no db URI provided in production mode', function () { expect(require('../server')).to.throw(); done(); }); 

当我的快速应用程序抛出错误,错误被扔进控制台和testing失败(实际上,它不会结束)。


我遇到的另一个问题是,如果环境处于生产模式,Express仅检查参数。 我试图在testing套件中设置stream程环境到生产环境,但是当我运行它时, NODE_ENV仍然被设置为“testing”。

 before(function() { env = process.env; // This doesn't really set the environment when I run the tests. process.env.NODE_ENV = 'production'; }); 

如果您试图testing在您的应用程序中未处理的exception,请尝试将您的调用包装在try / catch中 ,并在错误未抛出时返回错误。

 it('Throws Error when no db URI provided in production mode', function () { let threwError = false; try { // create the server that throws the Error require('../server'); } catch (err) { threwError = true; } expect(threwError, 'Didn\'t throw an error, when DB URI is empty').to.be.true; });