2016-07-12 15 views
2

Ich bin ziemlich neu für Winkelmesser und Tests AngularJS ist mein erstes Mal. Ich muss eine Tabelle testen, die mit einem Winkelraster versehen ist. Diese Werte haben keine eindeutigen IDs, um sie zu identifizieren. Nach einigen Nachforschungen musste ich gridTestUtils.spec.js verwenden. Ich habe das in meiner Spezifikationsdatei wie folgt versucht:finden es schwierig zu testen AngularJS UI Grid mit Winkelmesser

var gridTestUtils = require('./gridTestUtils.spec.js'); 

describe('get row count of grid', function(){ 
    it('get the row count of grid1', function(){ 
      gridTestUtils.expectRowCount('grid1',8); 
    }); 
}); 

Dies ist die einzige Spezifikationsdatei und es gibt keine Seitenobjektdatei. Aber dieser Code scheint nicht zu laufen. es sagt, dass pageObject nicht definiert ist. Kannst du mir bitte sagen, wie ich von hier aus vorgehen soll und ich bin kein Experte. Bitte antworten Sie auf einfache und detaillierte Weise, da es für mich einfach zu verstehen ist.

Vielen Dank für Ihre Hilfe.

Danke, Mallesh

+0

Konnten Sie die vollständige Fehlerrückverfolgung posten? Vielen Dank. – alecxe

+0

Der Fehler, den ich bekomme, ist - Syntax Error Unexpected token < Es zeigt auf Zeile no1. d. h. var GridTestUtils = require ('./ gridTestUtils.spec.js'); –

+0

Hm. Könnten Sie den Inhalt von 'gridTestUtils.spec.js' veröffentlichen? – alecxe

Antwort

0

gridTestUtils fühlt sich definitiv wie es übertrieben sein. Haben Sie darüber nachgedacht, die Seite mit den Aufrufen der unteren Ebene direkt an den Winkelmesser zu testen? Es ist nicht viel Code.

describe('get row count of grid', function() { 
    before(function() { 
     browser.get('http://localhost:9000/orwhatever'); 
    }); 

    it('get the row count of grid1', function(){ 
     expect(element.all(by.repeater('row in rows')).count()).to.eventually.equal(8); 
    }); 
}); 

Ersetzen Sie die URL mit der URL Ihrer App, und ersetzen Sie die Repeater-Zeichenkette mit der gleichen Zeichenfolge, die in ng-repeat in Ihrem DOM ist. Wenn Sie keinen Repeater verwenden, verwenden Sie einfach die Funktion $$(), um stattdessen alle Elemente mit css-selector zu erfassen.