У меня есть пользовательский Искатель в некоторых тестовых спецификациях Jasmine вида:Есть ли способ использовать шаблоны по умолчанию Jasmine в пользовательских совпадениях?
this.addMatchers({
checkContains: function(elem){
var found = false;
$.each(this.actual, function(actualItem){
// Check if these objects contain the same properties.
found = found || actualItem.thing == elem;
});
return found;
}
});
Конечно, actualItem.thing == elem
на самом деле не сравнить объект contents- я должен использовать один из более сложных решений в Object comparison in JavaScript.
Я не могу не заметить, однако, что у Жасмина уже есть хорошая проверка равенства объектов: expect(x).toEqual(y). Есть ли способ использовать это в пользовательском совпадении? Есть ли общий способ использования шаблонов в пользовательских сопоставлениях?
Удивительно, спасибо! Это может быть случай, когда решение, которое я искал (тот, который вы дали), хуже, чем проблема, которую я пытался избежать (моя собственная проверка равенства объектов). Тем не менее, очень здорово. – Fishtoaster
Если вы хотите использовать пользовательский матчи A внутри другого пользовательского совпадения B, вы можете добавить логику для вашего матчи A к jasmine.Env.prototype, а затем вызвать этот журнал из вашего матчи B с помощью jasmine.getEnv () .myMatcherFn(). –