Two web development gems I've found recently - Coypu & spy-js

Plenty of cool stuff going on around, but before I can reveal something more, I’d like to share some interesting stuff I’ve found recently:

Coypu (https://github.com/featurist/coypu)

Coypu is a web browser automation library for .NET. If you’ve done some E2E testing Angular.js (aka scenario testing - http://docs.angularjs.org/guide/dev_guide.e2e-testing) you should have already got the idea by now - you don’t have to write any selector or meddle with HTML/CSS directly - Coypu provides you an abstraction layer (almost DSL-like), so you just focus on the activities user performs on the page (“type value XYZ into field named ABC”, “click ‘Submit’ button”, etc.).

What’s the benefit? First - it saves some time and is less error-prone with direct fiddling with JavaScript. And tests are far more readable - what makes them easier to maintain as well.

How does it access the browser / what browser is it complaint with? It utilizes the SeleniumWebDriver (http://www.seleniumhq.org/projects/webdriver/), so it’s able use any of the most reasonable browsers available, including PhantomJS (http://phantomjs.org/), if you’re up for some serious speed.

So, if you want to do some concise BDD in your presentation layer, but you don’t like JavaScript and Jasmine (http://pivotal.github.io/jasmine/) makes you puke? Go for SpecFlow (http://www.specflow.org/) with Coypu.

spy-js (https://github.com/spy-js/spy-js)

If you think Coypu is cool, wait until you put your hands on spy-js. It’s a very, very smart node.js module that works as a proxy for web apps, But what does it actually do? It traces the execution of JavaScript on the target side and is able to register such information as:

  • full history of time-based ordered events that occured within the traced webpage (yes! Yes! YES!)
  • call stack for event (!)
  • the code that was actually executed in the event handler - sounds like ol’ good Firebug? but here you can find the registered value of parameters as well (!)

There can be just one comment - if I knew that tool earlier! :)

Anyway, tools is that promising, that it as already been taken over by JetBrains (who contracted its creator) - just few weeks after spy-js has been published. Hopefully it will only help to improve the product as it’s worth the attention it gets so far.

About Sebastian Gebski

Geek, agilista, blogger, codefella, serial reader. In the daylight - I lead software delivery. #lean #dotnet #webdev #elixir. I speak here for myself only.

Comments