私は、パラメータをJSONオブジェクトとして解析しようとする機能を持っています。失敗した場合は代わりにフォールバックを使用します。ジャスミンで試してみる
構文解析code.js
function parseCode(code) {
try {
usingJSONFallback(code);
} catch() {
usingStringFallback(code);
}
}
function usingJSONFallback(code) {
JSON.parse(code);
//...more code here
}
function usingStringFallback(code) {
//... more code here
}
main.js
//Some code...
parseCode('hello world!');
私はこのコードですべての問題を見ていませんよ。しかし、Jasmineは 'catch'の場合にJasmine 2.3を使用して単体テストを追加しようとすると、JSON解析エラーを単独でキャッチしてテストを中止します。
たとえば、ジャスミンテストのように:
describe('parseCode', function() {
it('Parses a string', function() {
var code = 'My code without JSON';
expect(parseCode(code)).toThrow();
});
});
あるいは状試験:両方の場合において
describe('usingJSONFallback', function() {
it('Throw an error if there is a string', function() {
var code = 'My code without JSON';
expect(usingJSONFallback(code)).toThrow();
});
});
、テストが失敗し、返し:
SyntaxError: Unable to parse JSON string
私はthrow Error(...)
を使って制御された例外を投げることについて読んだが、確かにこれは私の場合にはうまく収まらなかった。この場合のジャスミンの使用方法に関する提案はありますか?