- 本文参加了由公众号@若川视野 发起的每周源码共读活动, 点击了解详情一起参与。
- 这是源码共读的第36期,链接:juejin.cn/post/711878…
一:omit.js是干什么用的?
删除掉制定的属性,返回一个没有列入排除key属性的对象。
var omit = require('omit.js');
omit({ name: 'Benjy', age: 18 }, [ 'name' ]); // => { age: 18 }
二:本次源码共读的目标
1,了解源码
2,了解一下jest单元测试术语
三:源码共读
// 两个入参:obj-->原对象,fields-->数组类型,需要剔除的属性字段组成的一个数组。
function omit(obj: Object, fields: string[]) {
// 浅拷贝一下原数组,避免数据污染
const shallowCopy: any = Object.assign({}, obj);
// 循环要剔除的属性字段,删除掉原对象中的该属性
for (let i = 0; i < fields.length; i += 1) {
const key = fields[i];
delete shallowCopy[key];
}
// 返回删除掉属性之后的数组
return shallowCopy;
}
三:jest单元测试术语
describe("关于每个功能或某个组件的单元测试",()=>{
// 不同用例的单元测试
it('一个测试的名字', () => {
// 实际的测试代码
expect(xxx).toEqual(xxx);
});
test('一个测试的名字', () => {
// 实际的测试代码
expect(xxx).toEqual(xxx);
});
})
describe描述,会形成一个作用域。
it 是 test 的一个别名。
expect字面意思:期望的,这里就很容易理解了,就是运行我们的功能方法后,期望的结果是什么。
toEqual: 比较两个对象的时候使用这个,递归检查对象或数组的每个字段。