Zombie.js adalah browser tanpa kepala cepat dengan semua dukungan JavaScript Node.js menyediakan. collective.zombiedoctesting adalah paket yang menyediakan dekorator fungsi, yang memungkinkan Python doctest gaya pengujian JavaScript fungsional menggunakan Python seperti CoffeeScript.
Disclaimer: ini mungkin tidak menggantikan Selenium-stack, karena Zombie.js adalah browser yang hanya lain dengan kebiasaan sendiri.
Persyaratan
- Node.js harus diinstal
- NPM harus diinstal
- CoffeeScript, zombiejs dan paket async harus diinstal dengan menggunakan NPM
- Kopi executable harus ditemukan di jalan
Contoh penggunaan (dengan plone.app.testing)
Mulailah dengan mendefinisikan perlengkapan uji fungsional dengan ZServer (yang akan menjalankan Plone Anda pada localhost: 55001 secara default):
dari plone.app.testing impor PLONE_FIXTURE
dari plone.app.testing impor FunctionalTesting
dari plone.testing z2 impor
FUNCTIONAL_TESTING = FunctionalTesting (
& Nbsp; basis = (PLONE_FIXTURE, z2.ZSERVER_FIXTURE), name = "PloneFixture: ZServer")
Kemudian menulis tes JavaScript fungsional sebagai doctest untuk TestMethod Anda menggunakan CoffeeScript bukan Python. Mendefinisikan konteks (URL) dari tes dengan menggunakan dekorator (browser) dari collective.zombiedoctesting seperti yang ditunjukkan di bawah ini. Anda dapat menggunakan semua JavaScript yang disediakan oleh konteks dan browser global yang mewakili Browser Zombie.js ':
impor unittest
dari plone.app.testing impor TEST_USER_NAME
dari plone.app.testing impor TEST_USER_PASSWORD
dari collective.zombiedoctesting peramban impor
konstanta = {
& Nbsp; "TEST_USER_NAME": TEST_USER_NAME,
& Nbsp; "TEST_USER_PASSWORD": TEST_USER_PASSWORD
& Nbsp;}
Kelas LoginOverlayTest (unittest.TestCase):
& Nbsp; lapisan = FUNCTIONAL_TESTING
& Nbsp;browser ("http: // localhost: 55001 / plone /", pemetaan = konstanta)
& Nbsp; def test_login (self):
& Nbsp; "" "
& Nbsp; Mari kita mulai dengan melihat link login.
& Nbsp; >>> console.log melakukan $ ("# personaltools-login") teks.
& Nbsp; Masuk
& Nbsp; Mengklik link yang tidak seharusnya mengarahkan kita di mana saja, tetapi memberi kita
& Nbsp; AJAX overlay dengan form login.
& Nbsp;. >>> Lakukan ($ "# personaltools-login") klik
& Nbsp; >>> console.log window.location.href
& Nbsp;. ... Console.log lakukan ($ ".pb-ajax # masuk-bentuk") teks
& Nbsp; http: // localhost: 55001 / plone /
& Nbsp; Nama Login
& Nbsp; Sandi
& Nbsp; Mari kita mengisi form yang ...
& Nbsp; >>> global.form = ($ "# masuk-bentuk .pb-ajax")
& Nbsp;. ... Form.find ("#__ ac_name") val "% (TEST_USER_NAME) s"
& Nbsp;. ... Form.find ("#__ ac_password") val "% (TEST_USER_PASSWORD) s"
& Nbsp; ... console.log melakukan form.find ("#__ ac_name") val.
& Nbsp; ... console.log melakukan form.find ("#__ ac_password") val.
& Nbsp;% (TEST_USER_NAME) s
& Nbsp;% (TEST_USER_PASSWORD) s
& Nbsp; ... dan klik tombol login.
& Nbsp;. >>> Melakukan form.find ("input [type = 'submit']") klik
& Nbsp; >>> console.log window.location.href
& Nbsp; ... browser.text console.log ".documentFirstHeading"
& Nbsp; http: // localhost: 55001 / plone / login_form
& Nbsp; Anda sekarang login
& Nbsp; "" "
Apa yang baru dalam rilis ini:
- Pertama (mudah-mudahan) non-patah rilis / <. li>
Persyaratan :
- Python
Komentar tidak ditemukan