Mocha Github问题跟踪器上的这个问题很有趣
https://github.com/mochajs/mocha/issues/3180
此代码的工作方式与预期一致:
describe('before/after with data-driven tests', () => {
before(() => console.log('before worked'));
beforeEach(() => console.log('beforeEach worked'));
afterEach(() => console.log('afterEach worked'));
after(() => console.log('after worked'));
['foo'].forEach((item) => {
it(`works for item ${item}`, () => {
console.log('item is', item)
})
})
})但是这段代码的行为很奇怪:
describe('before/after with data-driven tests', () => {
before(() => console.log('before worked'))
beforeEach(() => console.log('beforeEach worked'))
afterEach(() => console.log('afterEach worked'))
after(() => console.log('after worked'))
[ 'foo' ].forEach((item) => {
it(`works for item ${item}`, () => {
console.log('item is', item)
})
})
})如果你使用mocha执行第二个示例代码,它会尝试从一个未定义的变量中读取'foo‘。有人知道为什么吗?以下是错误跟踪:
[ 'foo' ].forEach((item) => {
^
TypeError: Cannot read property 'foo' of undefined很奇怪!但我相信有一个很好的解释。
发布于 2017-12-27 05:53:07
原因是第二个示例中缺少;:
after(() => console.log('after worked'))
[ 'foo' ].forEach((item) => {
it(`works for item ${item}`, () => {
console.log('item is', item)
})
})当没有分号时,这意味着“调用函数after”,并从它返回的结果中选择这个键。但是在返回undefined之后,你会得到这个错误。
https://stackoverflow.com/questions/47984041
复制相似问题