压缩代码时,我很难找到在代码中定义数据的错误。我为我的代码编写了4个测试,而其中3个已经通过。我在测试3时遇到错误。
添加此选项可以解决此问题,但我正在尝试使其简洁。
blockchain.addBlock({data: 'Bears'});
blockchain.addBlock({data: 'Beets'});
blockchain.addBlock({data: 'Battlestar Galatica'});
这是我目前收到错误消息时遇到的情况。
describe('and the chain contains a block with an invalid field',()=>{
it('returns false', () => {
blockchain.chain[2].data = 'some-bad-and-evil-data';
expect(Blockchain.isValidChain(blockchain.chain)).toBe(false);
});
});
FAIL ./blockchain.test.js
● Blockchain › isValidChain() › and the chain contains a block with an invalid field › returns false
TypeError: Cannot set property 'data' of undefined
54 | it('returns false', () => {
55 |
> 56 | blockchain.chain[2].data = 'some-bad-and-evil-data';
| ^
57 |
58 | expect(Blockchain.isValidChain(blockchain.chain)).toBe(false);
59 | });
at Object.it (blockchain.test.js:56:9)
答案 0 :(得分:0)
似乎blockchain.chain
的索引2处没有元素。通常,这是尝试访问数组中元素的字段时出现此错误的最可能原因。
换句话说
someCollection[index].someField
如果您看到包含Undefined
,NullReference
,NullPointer
个关键字的错误,则说明您的集合中没有index + 1
个元素太多。