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

How to unit test callbacks logic in javascript?

本文关键字:回调 单元测试 javascript      更新时间:2023-09-26

我将一个回调函数传递给另一个函数,这个回调函数本身有一个逻辑,我想对它进行单元测试。

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

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

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

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

回调本身的测试和其他函数一样,通过传递一个值并期望得到一个结果。您必须将alert()替换为一个间谍,并确保它是用适当的参数调用的。