Software testing may form the bedrock of quality software, but most teams find that quality is more important than quantity in their test suites. Not...more.
One of the earliest, most fundamental things I learned about writing code was the Don't Repeat Yourself (DRY) principle. Initially, this resonated with me. When...more.
Learning, sharing, growth. Those three things are what brought together 60 software crafters on a Thursday evening in Seattle, Washington. David Scott Bernstein, the author...more.
Most modern languages that we use today provide tools and documentation for unit tests, which make it simpler to test our code. If unit testing...more.
In any non-trivial codebase we rely on third-party dependencies. These dependencies can be libraries or frameworks, but can also be external services that provide an...more.
When I first started working in Vim, reading Bram Moolenaar's Seven Habits of Effective Text Editing was very helpful. In it, he outlines three fundamental...more.
In this multi-series blog post, we're going hands-on through the steps that can help transform the design of a default Rails application into one with...more.
In this multi-series blog post, we're going hands-on through the steps that can help transform the design of a default Rails application into one with...more.
In this multi-series blog post, we're going hands-on through the steps that can help transform the design of a default Rails application into one with...more.
Often the hardest part of programming is knowing where to start. With test-driven development the right place to begin is with a test, but when...more.
Being able to run your unit tests quickly from Vim is vital when doing test-driven development. I've often seen developers using Vim to write code,...more.
In 2009, I started an internship at a Los Angeles-based audio/video post production studio. The audio engineer I was learning from was an avid musician...more.
Unit tests that fail intermittently, without exposing any production bugs, are the worst. Like the boy who cried wolf, they reduce our confidence that they're...more.
Controllers are powerful and complicated objects that easily accumulate responsibilities. Even when following the classic Rails convention of "Skinny Controllers, Fat Models," controllers still have...more.
ClojureScript is an incredible new project that any Clojurian can appreciate. What could be better than replacing vexing JavaScript with the clean, flowing syntax of...more.
Unit test frameworks automated the tedious work of verifying bits and pieces of code by hand, replacing a haphazard process of trial, error, and judiciously...more.
The overt purpose of testing is to ensure that code does what is expected of it, but tests themselves also act as documentation. Highly readable...more.
I use TDD as my development workflow. Red, green, refactor. It creates a quick feedback cycle, allows me to build momentum, and gives me confidence...more.
Some Background Thoughts There is an experiment from Richard Held and Alan Hein who raised kittens in total darkness. For a short period during the...more.
For those new to Test Driven Development, understanding how to take small, incremental steps when writing your tests can be a confounding practice. Even the...more.
Here's the situation: You use RSpec. You like RSpec. But you want more confidence from your tests than you get with RSpec's dynamic mocks while...more.
A short post to start the new year. Let's imagine that you are building an application that requires the application of a specific algorithm, but...more.
There's a special sort of satisfication I get from turning absolutely awful code into a well-tested, well-factored program. Not only have I increased the amount...more.
How does one develop software the "old-fashioned" way? Here is how my very first, non-TDD* version of Tic-Tac-Toe went. First thing's first - I need...more.
Working with Javascript can be, at best, a mildly frustrating experience. As I've started to work more with Jasmine and Backbone.js, I've added some simple...more.
Let's start off with some backstory: there was a time when only one Ruby implementation existed in the world: Matz's own Ruby Interpreter (MRI) written...more.
We encountered a strange spec failure today in our continuous integration build. It’s a Rails project, we’re using RSpec, and this was the failing expectation...more.
Acceptance testing was one of the first challenges I faced during my apprenticeship. I learned that complexity scales in proportion to the number of scenarios,...more.
This blog post originally appeared on a blog I maintain for my current game development class. Generally speaking my posts over there are pretty specific...more.
I hate debugging. Loathe it, despise it, pick your synonym and I’ll use it. Computer programming is building something out of nothing, making the computer...more.
BOC is a testing pattern that Unclebob briefly mentioned on fitnesse.org shortly after it was published. It describes the typical steps taken in an automated...more.
The self-shunt method of testing has been conflicting for me. Self-shunt is a good testing pattern to test observers/views. A colleague of mine has started...more.
I’ve noticed using more mocks lately. Instead of using them sparingly for controlling services which are not instrumental to what I am testing, I’m essentially...more.
David Chelimsky puts it gently…We’ve actually had some heated arguments about these mocking frameworks and it’a all kinda silly. In the end we’re writing good...more.