I’ve written about my experience of going to try! Swift Tokyo 2017. Now thanks to the video and transcript provided by Realm, I can also share the talk I gave: “Making Mock Objects More Useful”.
I start by showing the basics of how to make a Swift mock object by hand. But this easily leads to fragile tests because the assertions are overspecified. We need ways to make tests more malleable, with mocks that are more flexible.
To learn more, see the Realm video. (There’s a written transcript as well.)
Playback speed: Native English speakers may want to increase the playback speed of the video. Because there was simultaneous interpreting, I spoke very slowly, with unusually crisp enunciation. So I was happy when an attendee tweeted in Japanese, “Thanks to the slow speaking style, I could listen without the interpreter for the first time!”
— ほくろん (@hokuron) March 3, 2017
One of my points in the talk is to avoid overusing equality. This is something I’ve addressed before, outside of Swift mock objects. See Let’s Stop Overusing Swift Equatables in Unit Tests
When I kept referring to my own sample code for my day job, that gave me a good feeling. If this talk was useful for my own work, I knew it would help others, too. I still check it to remind myself how to write mock objects in Swift!
Do you have any questions about mock objects in Swift? Please share in the comments below.
I first experienced the joy of programming in junior high. But on the job, some of that joy was sucked away by seeing code my teammates were afraid to touch. Poor code led to fear, and fear led to our entire team being let go. I began searching for ways to improve code. I stumbled upon the first wiki, which was about Design Patterns, Extreme Programming, and Test Driven Development (TDD). I rediscovered joy on the job. I've now been doing TDD in Apple environments for 17 years. I'm committed to software crafting as a discipline, with the hope of raising you, my fellow programmers, to greater effectiveness and joy.
Please log in again. The login page will open in a new window. After logging in you can close it and return to this page.