Öncelikle kesinlikle Sayfa Nesne deseni kullanmaya geçiş ve ayrı dizin altında sayfanızın nesneleri tutmalı - Ben dizini po
aramak için tavsiye düşünüyorum. İşte
sizin için bir örnek, proje yapısı şu anda var:
$ cd e2e
$ tree -L 1
.
├── config
├── db
├── helpers
├── mocks
├── po
└── specs
config
bizim protractor
yapılandırmaları tutmak özel dizindir - Birden yapılandırmaları olabilir - örneğin, yerel testleri için ve için test, . Temel olarak "libs"/"utils" dizinimiz
helpers
'dur. Özel yasemin eşleştiricilerini, yardımcı işlevlere sahip ek "yardımcı" modülleri tutuyoruz. Ayrıca, window.localStorage
ve window.sessionStorage
nesnelerine uygun sargılar olan localStorage
ve sessionStorage
modüllerine sahibiz.
mocks
, protractor-http-mock
mocks'u sakladığımız bir dizindir.
po
, Sayfa Nesnelerinin tanımlandığı bir dizindir. Her Sayfa Nesnesi ayrı bir dosyada. Tüm özelliklerin nerede yaşadığı - bunlar alt dizinlere mantıksal olarak düzenlenir.
Ayrıca
onPrepare: function() {
global.helpers = require("../helpers/helpers.js");
// ...
},
, yardımcıları ve po ithalat daha da kolaylaştıracaktır ve ağaç dizinleri yukarı traversing önlemek ve daha iyi içeliğiyle işlemek için için:
helpers
kütüphanelerin bazıları made globally available via global
örnektir biz requirePO
ve @Michael Radionov önerdiği requireHelper
yardımcı işlevini kullanarak geçiş yaptıktan bkz:
Ayrıca, her Sayfa Nesnesinden bir düğüm paketi oluşturmak için @finspin tarafından önerilen fikri çok beğeniyorum.
Sayfa Nesnesi örneğiniz var mı? –
@GianlucaGhettini yup, temelde burada önerilenleri takip ediyoruz: https://github.com/angular/protractor/blob/master/docs/page-objects.md. – alecxe
Birim testleri için sayfa nesneleri gibi bir şey olması mantıklı mıdır? – ganqqwerty