Fee*_*ics 23 javascript coffeescript jasmine
我正在使用Jasmine,我想测试一个对象是否有某种方法,如下所示:
it "should have 'open' method", ->
@xhr = ajax.create()
expect(@xhr).toHaveMethod "open" # I want to test like this!
Run Code Online (Sandbox Code Playgroud)
我怎么测试?谢谢你的好心.
Suk*_*ima 28
@david正确回答.toBeDefined()
可能就是你想要的.但是,如果你想验证它是一个功能,而不是一个属性,那么你可以用toEqual()
用jasmine.any(Function)
.这是一个例子:http://jsbin.com/eREYACe/1/edit
HoL*_*ieR 24
没有内置的方法可以做到这一点,但是你可以通过这样做来达到预期的效果.
it "should have 'open' method", ->
@xhr = ajax.create()
expect(typeof @xhr.open).toBe("function")
Run Code Online (Sandbox Code Playgroud)
请注意,测试是否在另一个答案中定义为已定义为具有一些边缘情况,它将通过而不应该通过.如果你采用以下结构,它将通过,它绝对不是一个功能.
{ open : 1 }
Run Code Online (Sandbox Code Playgroud)
Dav*_*vid 11
我会尝试:
it "should have 'open' method", ->
@xhr = ajax.create()
expect(@xhr.open).toBeDefined()
Run Code Online (Sandbox Code Playgroud)
看到这个小提琴.