1
我的快递服务器会引发一个错误,如果有参数缺失(例如,DB URI)。我想在摩卡测试它实际上抛出了错误,但我不知道如何让摩卡能做到这一点。摩卡测试明示启动
if(!parameters.db) {
throw new Error('Please provide a db URI');
}
我有一个测试的设置是这样的:
it('Throws Error when no db URI provided in production mode', function() {
expect(require('../server')).to.throw();
done();
});
当我快速的应用程序引发错误,该错误被扔进控制台和测试失败(事实上,它并没有结束)。
我的另一个问题是,如果环境处于生产模式,Express仅检查参数。我试图将测试套件中的流程环境设置为生产环境,但是当我运行它时,NODE_ENV
仍然设置为“测试”。
before(function() {
env = process.env;
// This doesn't really set the environment when I run the tests.
process.env.NODE_ENV = 'production';
});
感谢。解决方案的工作,但我已经更新你的代码修复了一些不起作用的部分,并使其更简单(在我看来)。 –
这比较简单一些,但是你仍然有一个bug - 如果你想在try/catch之外expect()它,你需要在try/catch之外定义'threwError'。 – doublesharp