【问题标题】:Node.js: can't test inputs with ExpectNode.js:无法使用 Expect 测试输入
【发布时间】:2023-03-18 17:39:01
【问题描述】:

我正在尝试使用 Expect 测试错误,但在此 try/catch 块中,日志无法正常工作。在此块之前,我可以看到数组正在由输入填充...我不明白为什么脚本没有进入 try/catch 块,因此可以进行测试并返回正确的错误消息.任何帮助将不胜感激。代码:

inputs = ["fname", "surname"];

for (var i = 0; i < inputs.length; i++) {
        var errors=[];
       errors.push(inputs[i]);
      console.log("FNAME"+inputs[0]+ "SURNAME" +inputs[1]); //works

         try {

            if (inputs[i] == 0) {
                expect(inputs[i]).to.be.NaN;
                expect(inputs[i]).to.have.length.above(1);
                console.log("FNAME FIELD IS " + inputs[0]); //NOT WORKING
            }

           if (inputs[i] == 1) {
                expect(inputs[i]).to.be.NaN;
                expect(inputs[i]).to.have.length.above(1);
                console.log("SURNAME FIELD IS " + inputs[1]); //not working
            }            

            return "OK";

        } catch (errors) {
            console.log("STACK" + errors(inputs[0]));
           //save(errors);
            return errors;

        }


    }

【问题讨论】:

    标签: javascript arrays node.js try-catch


    【解决方案1】:

    您的代码按预期工作。

    它永远不会达到条件inputs[i] == 0inputs[i] == 1,所以它应该返回'OK',并且不会捕获任何错误,因为没有要捕获的错误。

    var inputs = ["fname", "surname"]
    for (var i = 0; i < inputs.length; i++) {
      console.log(inputs[i] == 0)  // false
      console.log(inputs[i] == 1)  // false
    }
    

    您还应该明确更改catch 部分,因为在异常情况下会出现错误,因为变量errors 不是函数。

    【讨论】:

      猜你喜欢
      • 2019-02-05
      • 2016-06-21
      • 2020-01-16
      • 1970-01-01
      • 2019-05-18
      • 1970-01-01
      • 1970-01-01
      • 2018-08-21
      • 2020-07-03
      相关资源
      最近更新 更多