반응형
Chai : 'should'구문으로 undefined를 테스트하는 방법
에 구축 이 차이 가있는 AngularJS와 응용 프로그램을 테스트 튜토리얼, 나는 "해야"스타일을 사용하여 정의되지 않은 값에 대한 테스트를 추가 할 것입니다. 이것은 실패합니다.
it ('cannot play outside the board', function() {
scope.play(10).should.be.undefined;
});
"TypeError : Cannot read property 'should'of undefined"오류가 처리 테스트는 "expect"스타일로 통과합니다.
it ('cannot play outside the board', function() {
chai.expect(scope.play(10)).to.be.undefined;
});
"해야 할"로 작업 어떻게해야합니까?
이것은 구문의 단점 중 하나입니다. 모든 객체에 속성을 추가하여 선언하지 않을 경우 속성을 추가 할 수 없습니다.
문서는 예를 들어 몇 가지 해결 방법을 제공합니다.
var should = require('chai').should();
db.get(1234, function (err, doc) {
should.not.exist(err);
should.exist(doc);
doc.should.be.an('object');
});
should.equal(testedValue, undefined);
차이 문서에서 언급했듯이
정의되지 않은 테스트
var should = require('should');
...
should(scope.play(10)).be.undefined;
널 테스트
var should = require('should');
...
should(scope.play(10)).be.null;
거짓 테스트, 즉 조건에서 거짓으로 취급
var should = require('should');
...
should(scope.play(10)).not.be.ok;
(typeof scope.play(10)).should.equal('undefined');
정의되지 않은 테스트에 대해 문을 작성하는 데 어려움을 쌓아야합니다. 다음은 작동하지 않습니다.
target.should.be.undefined();
다음 해결책을 찾았습니다.
(target === undefined).should.be.true()
유형 검사로도 쓸 수있는 권한
(typeof target).should.be.equal('undefined');
위의 방법이 올바른지 확실하지 않지만 작동합니다.
이 시도 :
it ('cannot play outside the board', function() {
expect(scope.play(10)).to.be.undefined; // undefined
expect(scope.play(10)).to.not.be.undefined; // or not
});
@ david-norman의 대답은 문서에 따라하며 설정에 몇 가지 문제가 대신 다음을 선택했습니다.
(scope.play 유형 (10)). should.be.undefined;
have
및 not
키워드 의 조합을 잊지 않고 .
const chai = require('chai');
chai.should();
// ...
userData.should.not.have.property('passwordHash');
함수 결과를 래핑 should()
하고 "정의되지 않은"유형에 대해 테스트 할 수 있습니다 .
it ('cannot play outside the board', function() {
should(scope.play(10)).be.type('undefined');
});
참고 URL : https://stackoverflow.com/questions/19209128/chai-how-to-test-for-undefined-with-should-syntax
반응형
'IT' 카테고리의 다른 글
스칼라 상수에 대한 명명 규칙? (0) | 2020.09.03 |
---|---|
H 또는 CPP 파일에서 내부 라이브러리에 대한 doxygen 주석 블록을 어디에 둘? (0) | 2020.09.03 |
$ (달러) 기호를 허용하지 않는 PowerShell 펼쳐보기 (0) | 2020.09.03 |
Apache에서 최대 동시 연결 수를 어떻게 늘리나요? (0) | 2020.09.03 |
수직 정렬 방법 (0) | 2020.09.03 |