Show Notes

Panel
Christian Johansen (twitter github blog)
Joe Eames (twitter github blog)
Merrick Christensen (twitter github)
Jamison Dance (twitter github blog)

Discussion
 00:45 - Christian Johansen
Test-Driven JavaScript Development

Sinon.JS
 Gitorious
01:26 - Sinon.JS
02:22 - Stubs, Mocks and Spies
Mocks Aren’t Stubs: Martin Fowler
 Mocha
10:47 - History of Sinon.JS
12:25 - XHR, HML, HTTP
13:36 - Mocking the Clock
Set Time Out

17:22 - Test-Driven JavaScript Development
Andrea Giammarchi @WebReflection
The Pragmatic Bookshelf Screencasts

21:43 - Test Framework
Buster.JS
 js-test-driver
24:17 - Other Mocking Libraries
mockjax

26:24 - Mocking Properties
27:22 - Matchers
30:46 - Sinon.JS Gotchas
33:10 - State of Test-Driven Development in JavaScript
Strategies for Testing

Picks
Jack Reacher (Joe)
Torchlight II (Joe)
Effective JavaScript by David Herman (Merrick)
Rdio (Merrick)
Adventure Time (Jamison)
How to implement an algorithm from a scientific paper: Emmanuel Goossaert (Jamison)
Advanced Vim registers (Jamison)
Emacs Rocks! (Christian)
Simple Made Easy (Christian)
LEGO Lord of the Rings (Christian)
Testing Clientside JavaScript (Joe)

Transcript
 MERRICK:  Classy guy.
[Hosting and bandwidth provided by the Blue Box Group. Check them out at Bluebox.net.]
[This episode is sponsored by Component One, makers of Wijmo. If you need stunning UI elements or awesome graphs and charts, then go to Wijmo.com and check them out.]
JAMISON:  Hello friends. Welcome to JavaScript Jabber. This is Episode number 43. Today, we have Joe Eames.
JOE:  Howdy!
JAMISON:  Merrick Christensen.
MERRICK:  Hey guys!
JAMISON:  And Christian Johansen. And also me, Jamison Dance. But Christian is the special guest today. Do you want to talk a little bit about yourself? Introduce yourself for those of us that don’t know you?
CHRISTIAN:  Yeah, sure. First of all, hi! I'm in Oslo, Norway up in the cold north. So, I wrote a book about testing JavaScript a couple of years back called ‘Test-Driven JavaScript Development’. And I've done a few open source libraries. Perhaps the one that most people know about is Sinon.JS. And currently, I work at Gitorious.org. So, that’s the brief introduction about me, I guess.
JAMISON:  Great! Chuck is gone today. He’s at CES, I believe. So, that’s why I'm filling in for him. I think we want to talk mainly about Sinon.JS today. Do you want to just give an overview of it?
CHRISTIAN:  Sure.
JAMISON:  For those who have never heard of Sinon.JS, what is it?
CHRISTIAN:  Sinon.JS is a stubbing and mocking library which means that when you're writing automated tests for your JavaScript, Sinon provides a tool kit to help you test functions and callbacks and stuff like that, to track how they're being used throughout the system. And then, it also provides some utilities to test asynchronous stuff through timers, like Set Time Out and Set Interval and those kinds of things.
And it also has a fake XMLHttpRequest implementation. So, it allows you to test your client side JavaScript completely decoupled from the server and it gives you an API to mimic the role of the server in your tests. So, you can focus a test on how the client side reacts to various kind of behavior from the server.
JAMISON:  So, you talked about stubbing and mocking. And I think, that means we have to get into the hairy discussion of the difference between stubs and mocks?
MERRICK:  And spies.
JAMISON:  And spies, yeah. Do you want to explain that a little bit?
CHRISTIAN:  Sure. I can explain my take on it because I know there are more than just mine.
MERRICK:  Sure.
CHRISTIAN:  I'm using the terminology pretty much like Martin Fowler did and he has a famous article called ‘Spies are Not Mocks’ or something like that. So,
Special Guest: Christian Johansen .
Album Art
043 JSJ Sinon.JS
0:00
46:10
Playback Speed: