ME = THIS



                        Marc Dix
                        Webdeveloper
                        mediaman(.de)*
               
                        @marcdix
                        github.com/mdix
                        gplus.to/mdix


                                                                  * we  hire:  http://careers.stackoverflow.com/de/company/mediaman

               

DALEKJS


Automatisiertes Frontend-Testing
mit Javascript

YAFTT?

NOPE!



                                          $ npm install dalek-cli -g
                                          $ npm install dalekjs --save-dev


"[...] here we are now, introducing a new testing tool for your Webpages, one that hopefully makes you love testing, one that holds your hand instead of pushing you away, one that makes you wanna contribute to it..." 

Sebastian Golasch (@asciidisco)

BROWSERS





ACTIONS


query   toFrame
screenshot   wait   log
reload   forward   back 
click   submit   open   type
sendKeys   answer   execute
accept   dismiss   resize   maximize
setCookie   waitFor   waitForElement
... 


ASSERTiONS

 
                                   selected                     notSelected   
                                   enabled                      disabled   
                                   exists                           doesntExist
                                   visible                          notVisible   
                                   text                                doesntHaveText 
                                   dialogText                dialogDoesntHaveText
                                   title                                doesntHaveTitle
                                   url                                   doesntHaveUrl

                                   width   height   attr   val   css
   

A BASIC TEST

module.exports = { 'Edit mode can be en- & disabled': function(test) { test 
.open('http://mypage.local')
.assert.css('.edit-info', 'display', 'none', 'Edit mode is init. disabled')
.click('.edit-switch')
.assert.css('.edit-info', 'display', 'block', 'Edit mode is enabled')
.click('.edit-switch')
.assert.css('.edit-info', 'display', 'none', 'Edit mode is disabled')
} }


DEMO

DOWNSIDES

"DalekJS is currently a developer preview. Some features are missing, some things might change, there's a lot of optimisation to be done. 
Don't use this for production! Sebastian Golasch (@asciidisco)

  • broken FF webdriver
  • missing actions
  • unstructured API
  • One(Two)-Man-Show
  • uses browser selector engine

ADVANTAGES


  • it's Javascript* 
  • completely free & open source
  • made with love
  • you can have a strong influence on the design of dalekjs

"
Only you can make it better, report bugs as you never ever reported before, send pull requests that will make me sleepless merging them, discuss in the mailing list about what you wan't. This aint Selenium, this is DalekJS, this is your tool." - Sebastian Golasch


* if you're short on time your wife, your kids and even your grandma might write your tests!

CONTRIBUTE

SHAPE THE DALEK API
https://github.com/rodneyrehm/dalek-api
FORK ON GITHUB
https://github.com/dalekjs/dalek
REPORT ISSUES
https://github.com/dalekjs/dalek/issues
DISCUSS ON IRC
irc.freenode.org - #dalekjs
CHECK BACKLOG ON WAFFLE.IO
https://waffle.io/dalekjs/dalek

.end('KTHXBYE')