当前位置: 首页 > 知识库问答 >
问题:

Jest检查是否调用了函数[重复]

慕承恩
2023-03-14

我正在使用Jest测试一些实用函数。

my_util.js:

export function myFunc(i) {
  if (i === 1){
    anotherFunc();
  }
}

另一个例子。js:

export function anotherFunc(i) {
    console.log('in anotherFunc');
}

测试调用了anotherFunc()的最简单方法是什么?这是我当前的单元测试,它失败了。有没有一种方法可以测试函数是否以其名称调用?

import { myFunc } from './my_util.js'

...

  it('myFunc should call anotherFunc', () => {
    const anotherFunc = jest.fn();
    myFunc(1);
    expect(anotherFunc).toHaveBeenCalled();  
  });

结果:

Expected number of calls: >= 1
Received number of calls:    0

共有1个答案

戈念
2023-03-14

也许您应该将anotherFunc作为参数插入到myFunc中,这将使测试更容易:

function myFunc(i, cb) {
  if (i === 1){
    cb();
  }
}
  it('myFunc should call anotherFunc', () => {
    const anotherFunc = jest.fn();
    myFunc(1, anotherFunc);
    expect(anotherFunc).toHaveBeenCalled();  
  });
 类似资料:
  • 问题内容: 我正在用Python编程,我想知道是否可以测试代码中是否已调用函数 我该怎么做? 问题答案: 如果该函数知道其自己的名称是可以的,则可以使用function属性: 您还可以使用装饰器设置属性:

  • 假设我们有一个函数和另一个函数 我们希望编写一个Unit测试,检查是否调用了的次数和正确的参数。 那里有 但这只是指最后一次通话。所以假设调用,然后,调用的断言是。 此外,还有 这将生成一个包含正确参数的对象列表。将这个列表与我们在单元测试中创建的对象进行比较,感觉是一件非常讨厌的事情<代码>调用似乎是模拟库的一个内部类。 有更好的方法吗?我使用这个设置来测试函数的并行执行。

  • 我有一个角度服务公开了一个公共方法。在它的主体中,可以根据条件调用两个不同的私有方法 如何根据传递给公共方法的输入参数,与jasmine一起检查是否调用了一个或另一个方法?我知道我们不应该测试私有方法,但实际上在这里我只想验证公共方法是否调用了正确的私有方法。我不想公开私有方法,因为我只希望服务提供一个访问点。 我的服务方式: } 茉莉花试验: });

  • 问题内容: 我正在一个需要JavaScript和会话的页面上工作。我已经有代码来警告用户是否禁用了javascript。现在,我想处理禁用cookie的情况,因为会话ID存储在cookie中。 我只想到了几个主意: 将会话ID嵌入链接和表单中 警告用户如果禁用了cookie,则必须启用cookie(需要帮助来检测cookie是否被禁用) 解决此问题的最佳方法是什么?谢谢 编辑 根据链接的文章,我想

  • 问题内容: 如果返回错误,是否仍在调用? 问题答案: 不,延迟功能不会运行。 这是log.Fatal的描述: 致命等同于Print(),然后调用os.Exit(1)。 呼叫,其描述在这里: 退出使当前程序以给定的状态码退出。按照惯例,代码零表示成功,代码零表示错误。程序立即终止;延迟功能未运行。 示范 如果您确实需要在程序完成之前正确关闭资源或执行某些任务,请不要使用。

  • 问题内容: 我确信这是一个非常明显的问题,并且确实有一个函数可以执行此操作,但是我似乎找不到它。在PHP中,我想尽可能有效地知道数组中是否有重复项。我不想像删除它们一样,并且我也不希望运行并将其与原始数组进行比较以查看它们是否相同,因为这似乎效率很低。就性能而言,“预期条件”是该阵列没有重复项。 我只想做类似的事情 我有没有想到的明显功能? 具有正确的标题,并且是一个非常相似的问题,但是,如果您实