自訂執行
如果您想要自訂您的 jasmine 環境,您可以自訂您的 boot.js 檔案。
|
(function() {
window.jasmine = jasmineRequire.core(jasmineRequire);
jasmineRequire.html(jasmine);
var env = jasmine.getEnv();
|
自訂介面當核心 jasmine 介面載入完後,您可以新增新函式或是覆寫現有函式。 |
var jasmineInterface = jasmineRequire.interface(jasmine, env);
|
在此,我們加入一些別名,所以 |
jasmineInterface.before = jasmineInterface.beforeEach;
|
|
jasmineInterface.after = jasmineInterface.afterEach;
|
而 |
jasmineInterface.context = jasmineInterface.describe;
if (typeof window == "undefined" && typeof exports == "object") {
extend(exports, jasmineInterface);
} else {
extend(window, jasmineInterface);
}
|
新增自訂報告產生器您也可以加入您自己的報告產生器,可以是新增至或取代 |
env.addReporter(jasmineInterface.jsApiReporter);
|
您也可以透過變更 或者,也可以在剖析測試後,將要執行規格指定為一陣列的套件或規格 ID,傳遞給執行函式。這些 ID 可以藉由遍歷可存取自 env.topSuite() 的剖析測試樹狀結構而得到。 |
var specFilter = new jasmine.HtmlSpecFilter({
filterString: function() { return queryString.getParam("spec"); }
});
env.specFilter = function(spec) {
return specFilter.matches(spec.getFullName());
};
window.setTimeout = window.setTimeout;
window.setInterval = window.setInterval;
window.clearTimeout = window.clearTimeout;
window.clearInterval = window.clearInterval;
|
預設情況下,Jasmine 會在瀏覽器觸發 |
var currentWindowOnload = window.onload;
window.onload = function() {
if (currentWindowOnload) {
currentWindowOnload();
}
env.execute(env.topSuite().id);
};
|
輔助函式,將 Jasmine 公開介面加入至正確物件。 |
function extend(destination, source) {
for (var property in source) destination[property] = source[property];
return destination;
}
}());
|