Nieco strangley nie jest to podstawowa funkcjonalność
Możesz dodać niestandardowy mechanizm dopasowywania tak:
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 masz definiowania konstruktora dla twojego Matchera - to funkcja, która zwraca obiekt Matchera.
Dołącz to przed "uruchomieniem". Podstawowe moduły matujące są ładowane podczas rozruchu.
pliku 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 swoim boot.js dodać wywołanie dodać dopasowujących po jaśmin zostało zdefiniowane, ale przed jasmine.getEnv(). Get env jest w rzeczywistości (nieco zwodniczo nazwaną) konfiguracją połączenia.
Łączyny otrzymują konfigurację w wywołaniu setupCoreMatchers w konstruktorze Env.
/**
* ## Require & Instantiate
*
* Require Jasmine's core files. Specifically, this requires and attaches all of Jasmine's code to the `jasmine` reference.
*/
window.jasmine = jasmineRequire.core(jasmineRequire);
yourGlobal.addExtraMatchers();
/**
* Since this is being run in a browser and the results should populate to an HTML page, require the HTML-specific Jasmine code, injecting the same reference.
*/
jasmineRequire.html(jasmine);
/**
* Create the Jasmine environment. This is used to run all specs in a project.
*/
var env = jasmine.getEnv();
Oni pokazują inny sposób dodawania niestandardowych dopasowujących w testach próbnych, jednak sposób działania jest odtworzenie matcher (ów) przed każdym testem z użyciem beforeEach
. To wydaje się dość okropne, więc pomyślałem, że zamiast tego pójdę z tym podejściem.
może być związany [Sprawdzanie dwóch granic jaśminu (między dopasowującego)] (http://stackoverflow.com/questions/28732881/checking-two-boundaries-with- jaśmin-między-matcher/28732882 # 28732882). – alecxe
Spróbuj: 'spodziewać się (procent) .not.toBeLessThan (0);' – jcubic
Jak wspomniano w @ Patrizio Rullo w poniższej odpowiedzi, jego łączniki zostały połączone. W Jasmine 2.6: https:/znajduje się teraz toBeGreaterThanOrEqual Matcher. /jasmine.github.io/api/2.6/matchers.html#toBeGreaterThanOrEqual –