Monday, January 17, 2011

True BDD for Webapps

Current BDD implementations have a "core" language they support. How about a bdd framework for ANY webapp?

"Outside in", the core BDD concept implies that you start with the outer layer of the app and implement inwards. Well, why not apply that starting with the html, going inwards to js, refactor js to make it mvc etc.

So the true BDD implementation for Web Apps should load in a browser, and allow any browser action to be validated naturally.

Implementation Ideas:
  • a html based runner of the spec a al jscoverage (which should be rewritten in js, btw) is required, so your spec can be loaded in html, and runs the target app in html as well
  • spec will be in a cucumber/robot syntax - very english-y, which will be converted into functions in javascript. Nothing new here, this is what all existing BDD implementations do anyway. We'll just leverage the best Javascript one.
  • building html must use zen coding for example so its easy to do so.
  • Adding behavior will involve writing a spec for it, and adding the basic js code for it, then refactoring it to use an appropriate framework (mvc, etc) and so forth.
  • As that progresses, the main spec becomes more detailed, and contains nested specs for specific layers. Eg, the javascript layer could be tested directly using rhino, etc

No comments: