2016-07-18 20 views
0

Wer schreibt beim Abnahmetest zufällig, wie man das LAST-Element in einer Liste auswählen würde? Ich teste den Vorgang des Hinzufügens eines neuen Datensatzes zu einer Liste und möchte den neu erstellten Datensatz in meinem Test bearbeiten/löschen.
Ich habe versucht, die neu erstellte Datensatz so wählen ....Wie bekomme ich das LAST-Element in eine Liste für Ember Acceptance Testing?

let newRecordLink = find('div.parent-list .list-group-item').last(); 
click(newRecordLink); 

Welche sorta funktioniert. Es zieht das letzte Element, aber es bricht aus meinem Test heraus und plötzlich bin ich auf der eigentlichen Seite der App, die ich versuche zu testen, anstatt im Testcontainer zu bleiben.

Hier ist der relevante Code HBS:

<div class="list-group parent-list"> 
    {{#each model.owners as |item|}} 
    {{#link-to 'client.members.edit-owner' item.id class="list-group-item" id=item.id}} 
     <h4 class="list-group-item-heading"> 
     {{item.firstName}} {{item.lastName}} 
     </h4> 
    {{/link-to}} 
    {{/each}} 
</div> 
+0

Verwenden Sie '{{# link-to}}' helper oder ein reines ''? – rmmmp

+0

Ich verwende einen Link zu. Wird Teilvorlage in der ursprünglichen Frage veröffentlichen, falls das helfen würde. – Jim

Antwort

0

Sie :last Selektor verwenden können (https://api.jquery.com/last-selector/)

click('div.parent-list .list-group-item:last') 
+0

Ich habe das ursprünglich versucht, konnte es aber nicht funktionieren lassen, trotzdem kann ich es nochmal versuchen und meine Ergebnisse melden. – Jim

+0

': last' Selektor sollte funktionieren, ich schlage vor, Sie führen den Test im Browser und überprüfen Sie, dass $ ('div.parent-list .list-group-item: last') 'etwas zurückgibt. Vielleicht stimmt etwas mit dem 'div.parent-list .list-group-item' Selektor nicht. Haben Sie versucht, nur '.list-group-item' zu verwenden? – GUL

+0

Danke GUL, das hat für mich funktioniert! – Jim

0

wenn es ein ember Array ist u verwenden .get können ('lastObject')