发生了一些奇怪的事情。我刚刚升级到节点v0.10.18。我的一个测试是在一个意想不到的地方失败了......看起来如果没有大括号的语句我就做不了。
if(false)
console.log('shouldn't be printed');
在上面的示例中,即使if语句失败,也会打印文本。但不能在以下测试中打印出来;
if(false) {
console.log('shouldn't be printed');
}
if(false) console.log('shouldn't be printed');
是否有我遗漏的东西,节点一直是这样吗?
编辑:我刚才注意到只有在使用 mocha 时才会发生这种情况。代码在节点中运行正常。有没有想过如何使用mocha发生这种情况?
EDIT2 :谢谢你的回答,我的例子很简单,实际上mocha深入到我的目录中的文件中,但是当我使用node-inspector踩过代码时,我看到了即使那些if语句的计算结果为false,它也会进入下一行并执行回调行,这会打破我的调用。我无法在其他任何地方重新创建它,但我对它的发生方式感到茫然
EDIT3 :好的,除了告诉你我在哪里看到它之外,我无法重现这个问题。我只是想在这里为开源项目做贡献https://github.com/jugglingdb/mysql-adapter 在lib / mysql中,向最后一行(10行左右)(下面链接)检查filter.where和filter.update,这就是问题发生的地方。如果我添加大括号,测试将通过,如果我不添加
,则不会https://github.com/jugglingdb/mysql-adapter/blob/master/lib/mysql.js第890行
测试它执行的位置: https://github.com/jugglingdb/mysql-adapter/blob/master/test/migration.test.js第291行。它不存在但是错误的检查将返回第890行正在抛出的错误