我正在使用Protractor测试我的AngularJS应用程序的{{price}}
和{{getAdditionalKm}}
的结果。这是我要测试的HTML的一部分:
<h1>{{ price(distance, time, time_standing, airport) | currency }}</h1>
<p>Preis im Detail:<p>
...
<b>Distanz</b><br>
{{ getFreeKm( time) }} Freikilometer<br>
{{ getAdditionalKm(distance, time) }} km a {{ fee_additionalkm | currency }} Zusätzlicher Kilometer Preis = {{ getFee_additionalKm(distance, time) | currency }} Kilometer Preis<br>
...
在我的量角器情景中,我运行expect(element(by.binding('price')).getText()).toEqual('20,30 €');
按预期工作,只得到价格('20 .30€')。
但是,运行expect(element(by.binding('getAdditionalKm')).getText()).toEqual('50');
会在{{ price }}
元素之后获取所有内容。如果我运行量角器测试,这是输出:
...
Failures:
1) c2g test get price with 50 additional kms
Message:
Expected 'Zeit
0 Tage a 59,00 ? = 0,00 ?
0 Stunden a 14,90 ? = 0,00 ?
20 Minuten a 0,29 ? = 5,80 ?
Distanz
50 Freikilometer
50 km a 0,29 ? Zusätzlicher Kilometer Preis = 14,50 ? Kilometer Preis
Sonstiges
0,00 ? Zeit stehend
0,00 ? Flughafenpauschale' to equal '50'.
...
为什么量角器不仅仅选择{{getAdditionalKm}}
元素?我需要更改html吗?
答案 0 :(得分:3)
getAdditionalKm
不在其自己的元素中,因此包含它的整个元素都会被选中。而不是.toEqual
与.toContain
的比较。如果可能,您还可以将getAdditionalKm
绑定放在其自己的元素中。