0
다음 코드 단편은 매우 간단합니다 (https://mochajs.org/#synchronous-code). 어리 석음이라고 느껴질 때 [1,2,3]
은 문자 표기법과 함께 사용될 때 undefined
으로 평가되고 myArray
변수에 사용되는 것은 아닙니다.왜 내 모카/어레이 스레딩 테스트가 실패합니까?
Array
#indexOf()
1) Should return -1 when the value is not present
1) Array #indexOf() Should return -1 when the value is not present:
TypeError: Cannot read property 'indexOf' of undefined
... Error trace just points the line where it fails, nothing else ...
내가이, 불안, 그러나 확실하게 쉬운 대답 질문에 대한 몇 가지 빛을 부탁드립니다 A :이 테스트를 실행하면 다음과 같이
var assert = require('assert') // "mocha": "^3.0.2"
var should = require('should') // "should": "^11.1.0"
describe('Array', function() {
describe('#indexOf()', function() {
var myArray = [1, 2, 3]
it('Should return -1 when the value is not present', function() {
myArray.indexOf(0).should.equal(-1) // a - success
[1, 2, 3].indexOf(0).should.equal(-1) // b - fails test
})
})
})
는 라인 'B'는 실패합니다. 건배. test it out 당신을 수 있습니다
그 질문은 왜'설명,'함수 표현식을 사용하는 경우 사용되어야한다. 이 경우 각각의'something.should.whatever()'는 객체를 반환합니다. 실제로'something'의'Object.prototype'을 확장해야합니다. 어쨌든, 왜 라인 'a'와 'b'가 스왑 될 때 테스트가 통과합니까? –
내가 말했듯이 나는 다양한 런타임이 javascript를 분석하는 방법에 대한 전문가가 아니므로 왜 실패했는지 물어 보았습니다. 귀하의 진술을 종결하지 않았기 때문입니다. 가장 좋은 방법은 세미 콜론 (semi-colons)을 사용하는 것입니다. 객체에 대한 속성을 찾는 방법 인'[xxx]'를보기 때문에 리터럴이 두 번째로 축소되어 속성 조회를 시도 할 때입니다. ** 그 추측 ** – Nix