如何在JavaScript中实现断言?

时间:2015-09-05 03:50:48

标签: javascript gruntjs assertion

我想使用断言来检查我的私有方法中的无效参数(以及其他只应在内部调用的参数)。我更喜欢:

  • 失败的断言终止程序,或者至少停止我的自动化测试。 console.assert()似乎没有这样做。
  • 在生产部署期间可以删除断言(我使用Grunt)。
  • 一个非常小的解决方案(不应该需要一个库来执行此操作)。

编辑: 我不想在这里测试任何东西。如果我不清楚这样做的动机,请查看CC2或Clean Code或Wiki页面:https://en.wikipedia.org/wiki/Assertion_(software_development)

1 个答案:

答案 0 :(得分:1)

喜欢什么?

const assert = env === "production"
    ? () => {}
    : (test, msg) =>  {
        if (!test) throw new Error(`assertion failed: ${msg}`);
      };

// ...

function foo(param) {
    assert(typeof param === "number", "param is a Number");
}