I’ve seen this error a number of times:
Cannot perform operations on a Metamorph that is not in the DOM
… and I’ll admit, I’ve not known exactly what a Metamorph is but for the most part, I can usually remember whatever it was that I just did that caused that error to happen; so I undo and find a different way.
Today, the thought crossed my mind: “What is a Metamorph?” and that’s when I went digging.
I knew from having seen the
“metamorph-#-start/end” references in script
tags that it was part of the magic that makes Ember.js
bindings work, but I didn’t know where they came from.
Suprisingly, I couldn’t find any search results
answering the question. It was only after digging through
some stackoverflow answers that my curiosity was satisfied when I found this.
—Oct 29, 2012
tl;dr : Capybara with phantomjs is the fastest solution around
Years ago, I loved Selenium for everything it made possible, particularly for the Firefox plugin that made it so easy to script-record a user acceptance test and dump it for automation.
Over the years, I have done my fair share of futzing around with Selenium, and when I took a look at Lebowski a few months ago, I thought I had found a silver bullet. It’s really a clean solution for managing everything around acceptance testing, that is, if you’re going to use Selenium.
Today, my solution of choice is Capybara with PhantomJS/poltergeist
So far, Capybara’s DSL is so clean and robust for programmatically defining any user action I’ve come up with. I don’t have any benchmarks to share at this time for vanilla-Capybara tests vs. Capybara w/headless JS (poltergeist) but suffice it to say, I spend noticably less time at the command line.
More to come on how to (acceptance) test your Ember.js apps using Capybara/poltergeist.
—Oct 15, 2012
Get started with #emberjs and #yeoman with a simple “yeoman init ember-starter”
—Sep 10, 2012
I finally brought Resumatic into the 21st century; it’s now a Rails 3.2.0 app.
While I originally intended to go step-by-step, whereby I was going to wrap the app with some regression tests, upgrade, run the tests to prove I didn’t (or did) break something, and then be happy, I soon tired of that given the many dependencies (RSpec, rvm, Rails, etc.)
Given the size of the app, I just decided to get a fresh gemset, install Rails 3.2.0, create a new container project via ‘new’, and then copy all the necessary files from the Rails 2 version in to the Rails 3 container, tweaking wherever new syntax was required.
Someday I’ll add tests…
—Jul 23, 2012