[英]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.