カスタムブート
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の配列をexecute関数に渡すことで、実行する仕様を指定することもできます。これらの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;
|
既定では、ブラウザで |
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;
}
}());
|