如何在javascript中单元测试回调逻辑?

时间:2015-10-24 16:46:20

标签: javascript unit-testing jasmine

我将回调函数传递给另一个函数,并且回调本身内部有一个逻辑,我想进行单元测试。

callback = (data) ->
    if(data.isValuePresent == "true")
        alert("Valid data")
    else
        alert("Invalid Data")

 funcWithCallback(callback)

现在我如何测试回调内的逻辑,“funcWithCallBack”在一个单独的类中,所以我可以窥探它,而回调是一个私有函数,所以我不能直接调用它。

1 个答案:

答案 0 :(得分:0)

您不会将回调作为funcWithCallback的一部分进行测试。您可以通过提供自己的测试回调(类似于此)来测试funcWithCallback

funcWithCallback(data => expect(data.isValuePresent).toEqual("true"))

通过传递值并期望结果,回调本身就像任何其他函数一样进行测试。您必须用间谍替换alert(),并确保使用适当的参数调用它。