私は非常に軽量なシステムで作業用にビルドしているjavascriptフレームワークをテストしています。javascriptのイベント処理
私はテストサイクルを壊すことなくフィードバックを報告するためにtry/catch内でテストしている関数を呼び出すラッパーとして機能するテスト関数を作成しました。問題は、意図的にエラーを作成すると、キャッチが呼び出されないということです。事前に
私のコード....
/// <summary>
/// Acts as a wrapper to allow us to perform and report the result
/// of each individual
/// test without blocking further tests.
/// </summary>
/// <param name="selector" type="String">
/// The id jQuery selector e.g #versionTests to repot feedback to.
/// </param>
/// <param name="testFunction" type="Function">
/// The test function to call.
/// </param>
test: function (selector, testFunction) {
try {
// now we are calling our own callback function
if (typeof testFunction === 'function') {
testFunction.call();
}
} catch (e) {
jQuery(selector).addClass("error").append("<p>" + e.description + "</p>");
}
}
おかげで....
EDIT ...追加され、明確にするためのコードと呼ばれます。
私が呼び出していたテスト機能は、これを呼び出す
testEqualizeHeight: function() {
PeachUI("div.heightTest").equalizeHeight();
}
.......(this.selector
がjQuerysセレクタを反映するプロパティです。)....基本的にはこれを呼び出すにある $selector.height(tallest);
equalizeHeight: function() {
/// <summary>
/// Equalizes the height of the specified element(s).
/// </summary>
var $tallest = 0, $selector = this.selector;
$selector.each(function() {
var $height = jQuery(this).height();
if ($height > $tallest) {
$tallest = $height;
}
});
// ie6 height is the same as min-height for other browsers.
if (PeachUI.browser.ie6) {
$selector.height(tallest);
} else {
$selector.css("min-height", $tallest);
}
}
エラーを作成するコードを投稿できますか? – cambraca