abbiamo aggiunto un toHaveClass
gelsomino personalizzato matcher e, al fine di farlo funzionare, abbiamo dovuto aggiungerla al beforeEach()
(con l'aiuto di this topic).personalizzati matchers gelsomino e goniometro
E, a seguire il principio DRY e per evitare di ripetere la definizione matcher in ogni beforeEach()
in specifiche in cui è necessario toHaveClass
, abbiamo aggiunto un blocco beforeEach()
destra in onPrepare()
:
onPrepare: function() {
var jasmineReporters = require("jasmine-reporters");
require("jasmine-expect");
// ...
// custom matchers
beforeEach(function() {
jasmine.addMatchers({
toHaveClass: function() {
return {
compare: function(actual, expected) {
return {
pass: actual.getAttribute("class").then(function(classes) {
return classes.split(" ").indexOf(expected) !== -1;
})
};
}
};
}
});
});
},
Funziona davvero, ma ogni volta che vedo il blocco beforeEach()
all'interno della configurazione del goniometro, ho una micro-depressione e una sensazione forte che non è un buon posto per definire i matchers.
la domanda:
c'è un modo migliore o posto per avere matchers personalizzati definiti?