我正在尝试测试是否用Jasmine调用了String.toUpperCase
方法。但是,只要我尝试,它就会返回
这是我的 Jasmine 测试:
spyOn(String,"toUpperCase")
$(@makeup.el).trigger(@e)
expect(String.toUpperCase).toHaveBeenCalled()
关于如何测试是否有任何想法?看来
String
是window
对象的私有(private)类,因此我实际上可能无法对其进行测试。请帮忙。 最佳答案
没有String.toUpperCase
函数。但是,有一个String.prototype.toUpperCase
函数,它将使用"pancakes".toUpperCase()
。您应该有以下更好的运气:
spyOn(String.prototype, 'toUpperCase')
#...
expect(String.prototype.toUpperCase).toHaveBeenCalled()
但是,不能保证本机函数的行为类似于JavaScript中实现的函数,因此如果这也不起作用也不要感到惊讶。
由于在各处都使用了字符串,因此检查
toUpperCase
方法是否在任何地方都被调用(这是用 spy 将String.prototype.toUpperCase
包裹起来的方法)似乎没有意义。监视一个特定的字符串会更有意义,但是即使那样,这个特定的测试仍然显得毫无意义。关于javascript - 使用Jasmine测试toUpCase,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17582997/