We've added a toHaveClass
custom jasmine matcher and, in order to make it work, we had to add it to beforeEach()
(with the help of this topic).
And, to follow the DRY principle and to avoid repeating the matcher definition in every beforeEach()
in specs where toHaveClass
is needed, we've added a beforeEach()
block right into 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;
})
};
}
};
}
});
});
},
It actually works, but every time I see beforeEach()
block inside the protractor config, I have a micro-depression and a strong feeling it is not a good place to define matchers.
The Question:
Is there a better way or place to have custom matchers defined?
Aucun commentaire:
Enregistrer un commentaire