Nieco dziwne to nie jest podstawowa funkcjonalność
Możesz dodać niestandardowy element dopasowujący w następujący sposób:
JasmineExtensions.js
yourGlobal.addExtraMatchers = function () {
var addMatcher = function (name, func) {
func.name = name;
jasmine.matchers[name] = func;
};
addMatcher("toBeGreaterThanOrEqualTo", function () {
return {
compare: function (actual, expected) {
return {
pass: actual >= expected
};
}
};
}
);
};
W efekcie definiujesz konstruktora dla swojego dopasowania - jest to funkcja, która zwraca obiekt dopasowujący.
Uwzględnij to przed „uruchomieniem”. Podstawowe dopasowania są ładowane podczas uruchamiania.
Twój plik html powinien wyglądać następująco:
<!-- jasmine test framework-->
<script type="text/javascript" src="lib/jasmine-2.0.0/jasmine.js"></script>
<script type="text/javascript" src="lib/jasmine-2.0.0/jasmine-html.js"></script>
<!-- custom matchers -->
<script type="text/javascript" src="Tests/JasmineExtensions.js"></script>
<!-- initialisation-->
<script type="text/javascript" src="lib/jasmine-2.0.0/boot.js"></script>
Następnie w pliku boot.js dodaj wywołanie, aby dodać elementy dopasowujące po zdefiniowaniu jasmine, ale przed jasmine.getEnv (). Get env jest w rzeczywistości wywołaniem konfiguracyjnym (o nieco mylącej nazwie).
Dopasowania otrzymują konfigurację w wywołaniu setupCoreMatchers w konstruktorze Env.
window.jasmine = jasmineRequire.core(jasmineRequire);
yourGlobal.addExtraMatchers();
jasmineRequire.html(jasmine);
var env = jasmine.getEnv();
Pokazują inny sposób dodawania niestandardowych dopasowań w przykładowych testach, jednak sposób, w jaki to działa, polega na odtworzeniu dopasowania (ów) przed każdym pojedynczym testem przy użyciu pliku beforeEach
. Wydaje się to dość okropne, więc pomyślałem, że zamiast tego wybiorę takie podejście.