2012-05-24 33 views
2

我預計JSTD處理「000011」(字符串)不等於11(數字)。JStestDriver assertEquals(「000011」,11)不應該是false?

但是,考慮看看他的實際JSTD代碼, 的assertEquals返回

(a === e) 

只有一個元素都是對象,否則返回

(a == e) 

是不是這個錯誤?

+3

我不認爲這是「錯誤的」。他們對「平等」的含義有不同的解釋。而且由於JavaScript提供了==,所以必須有一種方法來測試。如果你想嚴格比較,試試'assertSame'(儘管我不知道你想要的是什麼,根據文檔,它似乎是最接近的)。 –

+0

http://code.google.com/p/js-test-driver/wiki/Assertions – jbabey

+0

「assertSame失敗,如果預期值和實際值不是對同一對象的引用」, 這不是我想要的。 我期待assertSame也做過類型檢查。 – Pierpaolo

回答

2

我真的不能回答你的主要問題(斷言執行是否是「錯誤的」),但你正在嘗試做的就是,你可以寫一個斷言這樣:

var str = '000011'; 
var num = 11; 

assertTrue(str !== num); 

或者如果你想確保兩個變量具有相同的值和類型:

assertTrue(str === num); 
+0

我想這是最接近我的目標:測試是否應該返回一個字符串函數實際返回一個串。 – Pierpaolo