2013-07-11 224 views
1

我試圖測試茉莉花是否調用String.toUpperCase方法。但是每當我嘗試它只是返回茉莉花測試toUpperCase

toUpperCase()方法不存在

這裏是我的茉莉花測試:

spyOn(String,"toUpperCase") 
$(@makeup.el).trigger(@e) 
expect(String.toUpperCase).toHaveBeenCalled() 

如何測試,如果那個叫任何想法?看來Stringwindow對象的私有類,所以我可能實際上不能測試它。請幫忙。

回答

5

沒有String.toUpperCase功能。然而,String.prototype.toUpperCase函數是"pancakes".toUpperCase()將使用的函數。你應該有更好的運氣:

spyOn(String.prototype, 'toUpperCase') 
#... 
expect(String.prototype.toUpperCase).toHaveBeenCalled() 

然而,原生的功能,不能保證會那樣,是用JavaScript實現,所以不要感到驚訝,如果這也不行功能。

檢查toUpperCase方法是否在任何地方被調用(這是什麼包裝String.prototype.toUpperCase間諜會做)似乎有點毫無意義,因爲字符串遍佈整個地方;監視一個特定的字符串會更有意義,但即使如此,這個特定的測試似乎仍然有點毫無意義。

+0

我正在測試一個函數的行爲,它的最終結果就是調用它。所以這是確保一切順利的最佳方式。無論如何,你對如何測試它是正確的。謝謝。 –