Testing Your Functions It's been a few months since Bob started his journey towards learning functional programming. He's learned a lot and grown even more. While he's still just one of several developers at Sunware, his job satisfaction has never been higher. Throughout this time, Bob worked diligently to start writing code in a more declarative approach. He also got really good at composing functions, and while he didn't initially like using immutable data structures, after all he enjoyed being able to change an object whenever he wanted, he eventually came around when he saw that controlling when changes happen made his code more stable. After he'd implemented seamless immutable on his project, he resumed his previous chat with Alice. He asked her if there were still some opening positions on her team. She told him that there were and if he wanted one of the open slots, it was his. He jumped at the chance. After all, Alice had already taught him so much. He could only imagine what he would learn from her if he was on her team. That was three months ago, and Bob's prediction was absolutely right. As much as he'd grown in the first few months prior to joining Alice's team, he'd grown at least that much in the three months on her team. During the first couple of weeks on the team, Bob was asked to contribute to several different code reviews. He loved the opportunity of seeing other people's code and learning from it. One thing he'd noticed was that all of his new teammates pull requests always had lots of tests. As he looked into the tests on the latest PR, he noticed something. They seemed way more straightforward than he was used to. He'd tried writing unit tests in the past, but they always felt burdensome. If they were really as easy and clean as his teammates made them look, he couldn't wait to learn how to write them.