son propiedades propiedad principales matriz las funciones ejemplos cuales comandos capas bandera javascript arrays jasmine contains karma-runner

propiedades - propiedad focus javascript



jazmín: comprueba que una matriz contenga un elemento con propiedades determinadas (1)

Una forma de hacerlo en jasmine 2.0 es usar un matcher personalizado. También usé lodash para iterar sobre la matriz y en los objetos dentro de cada elemento de la matriz:

''use strict''; var _ = require(''lodash''); var customMatcher = { toContain : function(util, customEqualityTesters) { return { compare : function(actual, expected){ if (expected === undefined) { expected = ''''; } var result = {}; _.map(actual, function(item){ _.map(item, function(subItem, key){ result.pass = util.equals(subItem, expected[key], customEqualityTesters); }); }); if(result.pass){ result.message = ''Expected ''+ actual + ''to contain ''+ expected; } else{ result.message = ''Expected ''+ actual + ''to contain ''+ expected+'' but it was not found''; } return result; } }; } }; describe(''Contains object test'', function(){ beforeEach(function(){ jasmine.addMatchers(customMatcher); }); it(''should contain object'', function(){ var filters = { available: [ {''name'':''my Name'',''id'':12,''type'':''car owner''}, {''name'':''my Name2'',''id'':13,''type'':''car owner2''}, {''name'':''my Name4'',''id'':14,''type'':''car owner3''}, {''name'':''my Name4'',''id'':15,''type'':''car owner5''} ] }; expect(filters.available).toContain({name : ''my Name2''}); }); });

Estoy usando Karma / Jasmine para probar una clase determinada. Necesito probar que una matriz contiene un objeto con una propiedad dada, es decir, no quiero especificar el objeto completo (es bastante grande y la prueba se volvería menos sostenible si tuviera que hacerlo).

He intentado lo siguiente:

expect(filters.available).toContain(jasmine.objectContaining({name:"majors"});

pero esto me dio el error ''jazmín'' no está definido, y no he podido averiguar la causa de ese error.