Javascript 使用回调参数的测试方法
我有一个方法,它被传递一个回调参数,这样当方法中的一些数据被设置时,它将调用回调函数 该方法如下所示:Javascript 使用回调参数的测试方法,javascript,jasmine,Javascript,Jasmine,我有一个方法,它被传递一个回调参数,这样当方法中的一些数据被设置时,它将调用回调函数 该方法如下所示: myService.updateData(回调),当我调用它时,myService.updateData(函数(){//do things after data have set}) 在Jasmine测试中,我如何测试执行回调时会发生的事情 有可能像这样做吗 spyOn(myService,'updateData')。和.callFake(function(){}) 谢谢您是在测试myServ
myService.updateData(回调)代码>,当我调用它时,myService.updateData(函数(){//do things after data have set})代码>
在Jasmine测试中,我如何测试执行回调时会发生的事情
有可能像这样做吗
spyOn(myService,'updateData')。和.callFake(function(){})代码>
谢谢您是在测试myService.updateData还是回叫本身?如果是前者,那么回调会有什么实际影响?你可以通过加入一些伪函数来忽略它吗?例如,没有操作或只是返回一个常量结果吗?@vlaz,我正在尝试测试回调本身。当updateData
方法中的某些数据被设置时,回调会通知我。但是现在想想,如果我只是在组件上预先设置数据会怎么样。类似于,component.data=[]
。那么我就可以把我的断言做对了?这就是我的想法-如果你在测试中并不关心回调,那么用一个伪回调替换它,只关注手头的函数。@vlaz如果我想执行回调并测试回调内部发生了什么呢?那么这是一个单独的测试。您将在类似myCallback=function()。然后为myCallback
函数编写一个测试。记住,在单元测试中,一次只关注一件事情是很重要的。这使得我们很容易找出哪里出了问题。如果您同时测试updateData
和回调函数,则其中任何一个函数的问题都会导致测试失败,因此您需要同时调查这两个函数。