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