Ping-Pong, Paired Programing

In this episode, Ben and Joe demonstrate the ping-pong approach to pair programming. They alternate back and forth, writing test for each other to pass. You'll also get a glimpse into the problem-solving tactics of thoughtbot developers as they st...
This is a companion discussion topic for the original entry at

For a situation where you have multiple months would you go and write another feature spec? A full feature spec feels a little heavy weight for the difference between the existing spec. Would that be a situation where you would pull the logic out into a helper and then test the functionality in an isolated unit there. I suppose another alternative would be to simply trust the pluralize implementation but that doesn’t protect you against removing the pluralize call later if you did refactoring to the view.

I guess the more general question here is, how granular should you make the integration tests. One one had they are slow so having less of them is better but on the other hand you want to get some confidence that certain permutations for the view are tested and protected against change.

Great episode. Very instructive.

I wonder when you are “doing math” if you should have a single example with many expectations. It seems like it would reduce the amount of signal to boilerplate. I am thinking something along the lines of this: Multiple expect invocations inside a single test example · GitHub

The problem that I see with this is that if there is a test failure it is not immediately obvious where the failure occurred. Perhaps it could be solved by a custom matcher or something.

@benorenstein Great video, thanks for posting this. I was curious what the tool is you were using for your autocomplete (variable names and method names) within vim. I am very new to vim (thanks to upcase) and even looked through your dotfiles repo but wasn’t sure what you might be using. Also curious about some of the other tools you used to be so efficient in vim, like auto closing brackets and parenthesis. Thanks!


For snippets I’m using snipmate.vim. It’s fine. Others are fine too. :smile:

I actually don’t use anything to autoclose brackets and parens, but I do use endwise.vim to add end keywords in Ruby.

1 Like

I don’t intent to be mean, but it’s such a relief to see two giants as you guys struggling to do time moth :slight_smile: — I thought I was the only one having such a hard time with that… :blush: