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
00:45 - Christian Johansen
Test-Driven JavaScript Development
Sinon.JS
Gitorious
Gitorious
01:26 - Sinon.JS
02:22 - Stubs, Mocks and Spies
Mocks Aren’t Stubs: Martin Fowler
Mocha
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
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.
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 .
043 JSJ Sinon.JS
0:00
Playback Speed: