【发布时间】:2020-05-13 01:03:11
【问题描述】:
我试图在 Jest 测试中显示一个错误,但它不会显示所有级别。
import util from 'util'
describe('Module', () => {
it('should show all levels WITHOUT util', () => {
const large = {
level1: {
level2: {
message: 'At level 2!',
level3: {
message: 'At level 3!',
level4: {
message: 'At level 4!',
level5: {
message: 'At level 5!',
},
},
},
},
},
}
console.dir(large, { depth: 5 })
})
it('should show all levels with util', () => {
const large = {
level1: {
level2: {
message: 'At level 2!',
level3: {
message: 'At level 3!',
level4: {
message: 'At level 4!',
level5: {
message: 'At level 5!',
},
},
},
},
},
}
console.dir(util.inspect(large, { depth: 5 }))
})
})
这给了我以下结果
{ level1: { level2: { message: 'At level 2!', level3: [Object] } } } { depth: 5 }
{ level1:
{ level2:
{ message: 'At level 2!',
level3:
{ message: 'At level 3!',
level4:
{ message: 'At level 4!', level5: { message: 'At level 5!' } } } } } }
我的印象是 console.dir 应该已经为我做这件事了,但是在深度 2 之后我得到的第一个测试是 [Object]
我什至在 Jest 之外创建了一个简单的测试,它似乎对 console.dir 正常工作,谁能解释为什么会发生这种情况? Jest 是否会覆盖 dir 以其自己的默认深度或其他东西的行为方式?
const large = {
level1: {
level2: {
message: 'At level 2!',
level3: {
message: 'At level 3!',
level4: {
message: 'At level 4!',
level5: {
message: 'At level 5!',
},
},
},
},
},
}
console.dir(large, { depth: 5 })
结果...
{ level1:
{ level2:
{ message: 'At level 2!',
level3:
{ message: 'At level 3!',
level4:
{ message: 'At level 4!', level5: { message: 'At level 5!' } } } } } }
【问题讨论】:
标签: javascript typescript testing jestjs console.dir