io preferisco la più leggibile/intuitiva (a mio parere) utilizzare con l'operatore instanceof.
class Parent {}
class Child extends Parent {}
let c = new Child();
expect(c instanceof Child).toBeTruthy();
expect(c instanceof Parent).toBeTruthy();
Per ragioni di completezza è anche possibile utilizzare la proprietà prototipo constructor
in alcuni casi.
expect(my_var_1.constructor).toBe(Array);
expect(my_var_2.constructor).toBe(Object);
expect(my_var_3.constructor).toBe(Error);
// ...
ATTENTI che questo non funzionerà se avete bisogno di controllare se un oggetto ereditato da un'altra oppure no.
class Parent {}
class Child extends Parent {}
let c = new Child();
console.log(c.constructor === Child); // prints "true"
console.log(c.constructor === Parent); // prints "false"
Se avete bisogno di supporto eredità sicuramente utilizzare l'operatore instanceof
o la funzione jasmine.any() come Roger suggerito.
Object.prototype.constructor riferimento.
fonte
2017-06-19 14:05:16
possibile duplicato di [Come utilizzare Jasmine per verificare se viene creata un'istanza?] (Http://stackoverflow.com/questions/23062034/how-to-use-jasmine-to-test-if-an-instance -è creato) – Chic