首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么不调用jest.fn

为了回答这个问题,首先需要了解jest.fn是什么。

jest.fn是Jest测试框架中的一个功能,用于创建一个模拟函数(mock function)。模拟函数可以用来替代真实的函数,以便在测试过程中进行断言、验证函数的调用情况等操作。

那么为什么不调用jest.fn呢?

  1. 调用jest.fn会创建一个模拟函数,这意味着实际的函数逻辑不会被执行。如果我们想要测试的是真实的函数行为,调用jest.fn就无法满足需求。
  2. 调用jest.fn会创建一个模拟函数,这可能会导致测试结果不准确。模拟函数只是一个虚拟的替代品,它可能无法完全模拟真实函数的行为。在某些情况下,我们需要测试真实函数的返回值、副作用等特性,而不是一个模拟的结果。
  3. 调用jest.fn可能会导致测试代码的可读性和可维护性下降。使用模拟函数会引入额外的代码和概念,增加了测试代码的复杂性。如果不是必要的情况,我们应该尽量避免使用模拟函数,保持测试代码的简洁和易懂。

总结起来,不调用jest.fn的原因是为了保持测试的准确性、可读性和可维护性。在某些情况下,我们可能需要使用真实的函数进行测试,而不是使用模拟函数。当然,在其他情况下,使用jest.fn来创建模拟函数是非常有用的,可以帮助我们进行更灵活、全面的测试。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为什么推荐使用PHPicker

: var config = PHPickerConfiguration() // 可选择的资源数量,0表示设限制,默认为1 config.selectionLimit = 0 // 可选择的资源类型...// 只显示图片(注:images 包含 livePhotos) config.filter = .images // 显示 Live Photos 和视频(注:livePhotos 包含 images...PHPicker 的缺点 为什么推荐使用 PHPicker,虽然说 PHPicker 有一些优点,但同时也有一些缺点: 加载 iCloud 资源时没有进度回调 不支持图片编辑(比如选择头像要将图片裁剪成正方形...然后我们可以在合适的时机调用以下这个 API 来推出 PHPickerController。...监听相册变化 配合手动调用 PHPickerController,我们还需要监听用户添加/删除了哪些照片。 注意: 这组 API 并不是新出的,从 iOS 8 开始就支持了。

2.5K40
  • WPF 调用 InvalidateVisual 触发 OnRender 的原因

    我昨天和头像大人在解决一个坑,发现调用了 InvalidateVisual 的时候,不会触发 OnRender 方法。...优先级的任务触发的时候才会调用 但是本文解决的问题是,为什么调用 InvalidateVisual 方法的时候,等待下一次的 Dispatcher 或等很久都没有进入 OnRender 方法 先通过一个简单的代码让大家能测试...原理是在控件的 OnRender 触发条件是控件需要在视觉树上,如果控件不在视觉树上,如被从上层元素移除或元素被设置 Collapsed 那么 OnRender 将不会触发 为什么此时设计让 OnRender...触发?...原因是既然这个控件就不想显示出来了,那么还调用他的 OnRender 方法做什么 有没有例外项?

    2.2K20

    为什么推荐使用存储过程?

    最近项目中遇到的存储过程问题,让我想起了去年在武汉出差时一位同事的发问: 我觉得存储过程挺好用的,为什么建议用?...如果我在C#代码中调用这已有的三个存储过程,事情本该非常快就能结束。我也是这么做的。...从接口语义表达就可知调用的目的,这样代码可读性也会有大大提高。 那就动手改。但没想到的是问题来了。...本例中因为GetJobs已被其他多处代码或SQL scripts调用,所以对现有现有存储过程进行改动会有不小风险。...但对于业务逻辑的通用方法,非常推荐将其写在存储过程中,代码复用、扩展与客户端语言比,相差甚远。也许终究能实现,但代价与风险比客户端语言要高,得不偿失。

    2K30

    为什么建议直接使用 Async 注解?

    调用者将在调用时立即返回,方法的实际执行将提交给Spring TaskExecutor的任务中,由指定的线程池中的线程执行。 在项目应用中,@Async调用线程池,推荐使用自定义线程池的模式。...异步 异步调用则是只是发送了调用的指令,调用者无需等待被调用的方法完全执行完毕;而是继续执行下面的流程。...例如, 在某个调用中,需要顺序调用 A, B, C三个过程方法;如他们都是同步调用,则需要将他们都顺序执行完毕之后,方算作过程执行完毕;如B为一个异步的调用方法,则在执行完A之后,调用B,并不等待B完成...SyncTaskExecutor:这个类没有实现异步调用,只是一个同步操作。只适用于不需要多线程的地方。 ConcurrentTaskExecutor:Executor的适配类,推荐使用。...应用默认的线程池,指在@Async注解在使用时,指定线程池的名称。

    1.2K20

    MySQL自增主键为什么连续

    auto_increment_offset(默认值是1)开始,以auto_increment_increment(默认值是1)为步长,持续叠加,直到找到第一个大于X的值,作为新的自增值 唯一键冲突导致自增主键连续...insert into t values(null, 1, 1); 执行器调用InnoDB引擎写入一行,传入的这一行的值是(0,1,1) InnoDB发现用户没有指定id,获取表t当前的自增值2 将传入的行改为...事务回滚导致自增主键连续 set autocommit=0; begin; insert into t values(null, 2, 2); rollback; show create table...事务回滚为什么自增值不能回退 两个并行的事务在申请自增值的时候,为了避免两个事务申请到相同的自增id,需要加锁按照顺序申请,如果自增值可以回退需要做一些特殊处理: 每次申请id之前,判断表里此id是否存在...批量插入导致自增值连续 自增值锁不是一个事务锁,每次申请完就释放,方便其他事务获取自增值。

    8.4K20
    领券