javascript - Jest - 如何测试函数是否对参数进行了更改

标签 javascript jestjs

假设我有这个功能

function changeFooBarToOne(foo) {
  foo.bar = 1;
}

如何测试它是否将值更改为 1?

describe('changeFooBarToOne', () => {
  it('modifies the bar property value to 1', () => {
    const foo = { bar: 0 };
    // call the expect and evaluate foo to equal { bar: 1 }
  })
})

最佳答案

不要忘记,JavaScript 对象是引用类型。

function changeFooBarToOne(foo) {
   foo.bar = 1;
}

describe('changeFooBarToOne', () => {
  it('modifies the bar property value to 1', () => {
    const foo = { bar: 0 };
    changeFooBarToOne(foo);
    expect(foo.bar).toBe(1);
  })
})

//another way
describe('changeFooBarToOne_1', () => {
  it('modifies the bar property value to 1', () => {
    const foo = { bar: 0 };
    changeFooBarToOne(foo);
    expect(foo).toEqual({bar : 1});
  })
})

关于javascript - Jest - 如何测试函数是否对参数进行了更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50631642/

相关文章:

javascript - 测试 javascript 中 undefined variable /可能的 javascript bug?

javascript - 如何在 Bootstrap 插件中以货币格式显示输入字段中的数字?

node.js - 如何用 Jest 模拟 express.Application?

javascript - 防止特定属性在react js中的DOM节点上渲染

javascript - 开 Jest ,给出未知的 : Cannot read property 'weather' of undefined don't know what is weather

javascript - 切换页脚并根据修改高度

javascript - 匹配行首时 JavaScript V8 正则表达式引擎中的错误?

javascript - nodejs-graphicMagick-imageMagick- "Invalid Parameter - -resize\r\n"

javascript - 为什么在没有 try/catch block 进行异步测试的情况下 Jest 会出错

javascript - 模拟服务工作人员-预期响应解析器返回模拟响应对象,但未定义。将使用原始响应