2016-03-30 8 views
0

Ich habe den Text durch die unten zu behaupten:toEqual durch Bindung funktioniert nicht

expect(accessPolicyPage.accessPolicyName).toEqual(element.all(by.binding("pol.name")).get(0).getText()); 

Es ist mir etwas lang Fehler wie unten geben.

Erwartete 'Access Policy-Name 01' gleich ({ptor_: ({Control: Funktion, Zeitplan: Funktion, setFileDetector: Funktion, getSession: Funktion, getCapabilities: Funktion, beenden: Funktion, Aktionen: Funktion, Touchaktionen: Funktion, ExecuteScript: Funktion, executeAsyncScript: Funktion, ruft: Funktion, wartet: Funktion, Schlaf: Funktion, getWindowHandle: Funktion, getAllWindowHandles: Funktion, getPageSource: Funktion, in der Nähe: Funktion, getCurrentUrl: Funktion, getTitle: Funktion, findElementInternal_: Funktion, findElementsInternal_: Funktion, takeScreenshot: Fu nction, manage: Funktion, switc

Antwort

1

Was Sie auf der Konsole gedruckt sehen, ist ein "scary" Versprechen Objektdarstellung. Wenn Sie einen echten Wert benötigen, lösen das Versprechen ausdrücklich mit then():

element.all(by.binding("pol.name")).get(0).getText().then(function (text) { 
    expect(accessPolicyPage.accessPolicyName).toEqual(text); 
}); 

Oder da accessPolicyPage.accessPolicyName ein tatsächlichen Text ist vorher definiert, können Sie tauschen nur die Dinge im Matcher und ließen expect() löst das Versprechen implizit:

expect(element.all(by.binding("pol.name")).get(0).getText()).toEqual(accessPolicyPage.accessPolicyName); 

Diese Option einfacher und allgemein empfohlen ist.

0

Tatsächlich unterstützt Winkelmesser Erwartungen für Versprechungen. Aber es behandelt nur den Fall, wenn das erste Argument in Erwartung ein Versprechen ist. So arbeiten sollte folgendes:

expect(somePromise).toEqual(someString); 
expect(somePromise).toEqual(anotherPromise); 

Aber diese werden nicht:

expect(notPromise).toEqual(somePromise); 
Verwandte Themen