2017-05-29 35 views
0

我試圖用Expect測試錯誤,但在這個try/catch塊內日誌不工作。在這個塊之前,我可以看到數組正在被輸入填充......我不明白爲什麼腳本沒有進入try/catch塊,因此可以進行測試並且可以返回正確的錯誤消息。任何幫助都會有所幫助。代碼:Node.js:無法測試輸入與期望

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; 

     } 


    } 

回答

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 
} 

你也應該definitly改變catch一部分,因爲在例外的情況下,會出現一個錯誤變量errors不是一個函數。

+0

感謝提示:) – FuManchu