10
jasmine-node를 사용하여 노드 서버에서 API 끝점 뒤에 컨트롤러 로직을 테스트하고 있습니다.jasmine-node 테스트에서 오류 분기를 강제하는 방법
다음var getSummary = function(req, res) {
var playerId = req.params.playerId;
db.players.getAccountSummary(playerId, function(err, summary) {
if (err) {
logger.warn('Error while retrieving summary for player %d.', playerId, err);
return res.status(500).json({
message: err.message || 'Error while retrieving summary.',
success: false
});
} else {
res.json({success: true, summary: summary});
}
});
};
내가 성공적으로 else
블록을 테스트하는 방법은 다음과 같습니다 : 다음은이 컨트롤러 로직은 일반적으로 모습입니다
describe('GET /api/players/:playerId/summary', function() {
it('should return an object summarizing the player account', function(done) {
request
.get('/api/players/' + playerId + '/summary')
.set('Content-Type', 'application/json')
.set('cookie', cookie)
.expect(200)
.expect('Content-Type', /json/)
.end(function(err, res) {
expect(err).toBeNull(err ? err.message : null);
expect(res.body.success).toBe(true);
expect(res.body.summary).toBeDefined();
done();
});
});
});
이 잘 작동하지만 if
블록이 가난한 지점의 적용 범위 나 잎 테스트하지 않았다. 내 질문은, 테스트에서 오류 블록을 실행하려면 어떻게해야합니까? 올바른 경고가 기록되고 올바른 데이터가 전달되었는지 테스트 할 수 있도록 오류를 반환하도록 설정된 응답을 조롱 할 수 있습니까?
참조 http://stackoverflow.com/questions/8408033/use-jasmine-to-stub-js-callbacks-based-on-argument- ([이용 쟈스민 인수 값에 기초 JS 콜백 스터브] 값). 당신이하려고하는 트릭은'모의 (mock) '를 만드는 것입니다. –