Testlerden birinde, 3 öğeden birinin mevcut olduğunu iddia etmeliyiz. Şu anda protractor.promise.all()
ve Array.reduce()
kullanarak bunu yapıyor:Bir dizinin doğru değerini düşürdüğünü doğrulayın
var title = element(by.id("title")),
summary = element(by.id("summary")),
description = element(by.id("description"));
protractor.promise.all([
title.isPresent(),
summary.isPresent(),
description.isPresent()
]).then(function (arrExists) {
expect(arrExists.reduce(function(a,b) { return a || b; })).toBe(true);
});
açıkça vaat çözmeden Jasmine ile bunu çözmek için daha iyi bir yolu var mı? Özel bir maççıya mı ihtiyacımız var yoksa yerleşik maççılarla çözmek mümkün mü?
Not (fonksiyon, (a) {a dönüş;}) '. Jasmine ile ['done' argümanını' '' geri aramada] kullanırsınız (http://jasmine.github.io/2.0/introduction.html#section-Asynchronous_Support) ve test bittiğinde bunu çağırın. . Daha iyi bir yol olduğunu düşünmüyorum. Çözülecek sözleri beklemek için neyse ihtiyacın var. – trincot
@trincot için teşekkürler. Muhtemelen şunu söylemeliyim ki, ['beklenen()' sözümüzü örtük olarak çözüme kavuşturmak için İletici’de “yamalı” dır (http://www.protractortest.org/#/control-flow#protractor-adaptations). Çoklu vaatlerin sonuçlarını birbirleriyle birleştirmek zorundadır, bu durumda yardımcı olmayabilir. – alecxe
İlk değer olarak "false" değerini sağlamanız gerekir, böylece boş dizilerde de çalışır. Ya da sadece .some (Boole) 'yi kullanın. – Bergi