2016-05-03 7 views
0

Ich teste eine angularjs-Direktive, die das DOM manipuliert.Jasmine - Ich bekomme keine DOM-Elemente

Ich versuche, das Element in meiner Jasmine-Spezifikation zu bekommen, damit ich die Funktionalität der Direktive testen kann. Wenn ich jedoch document.getElementsByClassName oder TagName oder ID verwende, gibt es nichts zurück. Hat jemand Ideen dazu?

html = document.getElementsByClassName('analog'); 
console.dir(html); 
+0

Wahrscheinlich sind die Elemente, die Sie abfragen möchten, nicht an das Dokument angehängt. Vielleicht fügt Angulars Testwerkzeug das Element nicht zum Dokument hinzu? Bitte erstellen Sie ein [MCVE] (http://stackoverflow.com/help/mcve), damit andere Ihr Problem reproduzieren können. –

Antwort

0

Wenn Sie einen Test in Headless Browser/Chrom usw. erstellen, könnten Sie ein Dummy-Objekt, zB JQuery Knoten anhängen, dann entfernen Sie diesen Knoten in afterEach.

z.

beforeEach(() => { 
    var mockHtml = $('<div class="form-group" style="position: absolute;left: -10000px;"><input class="testInput" id="some_input"></div>'); 
    $('body').append(mockHtml); 
}); 

afterEach(() => { 
    $('.form-group').remove(); 
});