繁体   English   中英

Babel const可防止突变?

[英]Babel const prevents mutation?

我正在使用由Babel提供支持的ES6语法编写测试,并且正在使用Jest运行测试。 这是我的测试代码:

test('case: response body contains a user, should update sessionData', () => {
  // current user info in the session
  const currentUserInfo = {
    firstName: 'User1',
    lastName: 'Old Info'
  }

  const mockSessionData = createSessionHelper(
    {
      data: {
        user: currentUserInfo
      }
    },
    mockLogger
  )

  // new user info in the body
  const newUserInfo = {
    firstName: 'User2',
    lastName: 'New Info'
  }

  const body = {
    user: newUserInfo
  }

  const result = handleSuccess({
    req: {
      sessionData: mockSessionData
    },
    body
  })

  expect(result.status).toBe(DEFAULT_SUCCESS_STATUS)
  expect(result.body).toEqual(body)
  expect(mockSessionData.get('user')).toEqual(newUserInfo)
})

如您所见,我正在使用相同的对象,将它们用作我正在测试的函数的参数,并将结果与​​期望相匹配。

我在这里假设这些功能不应使这些参数发生变化。 这个假设是真的吗?

通过使用Babel const ,我的数据将保持不变,还是我仍应使用Object.freeze()

参考文献所述

常量的值不能通过重新分配而更改,也不能重新声明。

无法重新分配mockSessionData const不能也不应阻止对mockSessionData持有引用的对象进行修改。 如果不应更改对象,则可以使用Object.freeze

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM