2017-10-06 2 views
0

J'essaie de tester une méthode où l'une des choses qu'elle bloque l'orientation de l'écran. Jasmine cependant jette l'erreur dans la ligne:
(<any>window).screen.orientation.lock('portrait') en disant que undefined is not a constructer.Objet de fenêtre non défini dans le jasmin

J'ai même essayé de ne pas utiliser les types dactylographiés et juste window.screen.msOrientationLock('landscape') et d'autres méthodes window.screen mais j'ai la même erreur. J'ai le _$window_ injecté dans beforeEach de mes tests aussi.

Le test de verrouillage ne fait pas partie de mon test. Il est donc possible d'ignorer cette ligne spécifique ou de corriger cette erreur. Merci :)

Répondre

0

Eh bien, c'était facile. J'ai dû injecter l'objet fenêtre et l'affecter à une variable globale dans mon global beforeEach comme ceci:

$window = _$window_;

Ensuite, le problème suivant était que la propriété orientation n'était pas disponible dans l'objet window.screen malheureusement. Je devais il se moquer de l'intérieur de ma spec comme ceci:

$window.screen.orientation = { lock: function() { return; } };

juste eu à faire avant d'espionnage/appelant la méthode qui avait window.screen.orientation.lock méthode à l'intérieur.