When you're starting TDD, the hardest part is knowing where to begin. What should the first test be? What even counts as a “first step”?| Quality Coding
Speed up your Swift development with custom Xcode key bindings for automated refactoring. Learn which shortcuts I use, why they matter, and how to stay in flow.| Quality Coding
What is the state of test-driven development (TDD) for iOS? What about behavioral-driven development (BDD), or domain-driven Development (DDD)? How might the new Swift Testing framework affect TDD? And what advice do I have for iOS developers who want to try TDD? Walid Sassi invited me to join him on the Swift Academy Podcast. Besides being […]| Quality Coding
Did you know that Xcode behaviors can help change your behaviors as a developer? Xcode lets us adjust its behavior on certain actions. I like to keep my development workflow centered on running tests. What’s a good setup for a test-centric workflow? Here are the settings I use to keep tests at the forefront of my […]| Quality Coding
Learn to set up CI tooling for Xcode projects using GitHub Actions. Reduce remote debugging time with local scripts and fast feedback loops.| Quality Coding
What should you test in SwiftUI — and what should you validate through other means? This guide breaks down the key principles of unit testing SwiftUI.| Quality Coding
SwiftUI unit testing: Why it matters, how it compares to UI testing, and how it enables faster feedback and safer refactoring. Learn more inside.| Quality Coding
How to verify objects with ApprovalTests. See how to evolve an assertion gradually, which makes it easier to do test-driven development (TDD).| Quality Coding
ApprovalTests is a new testing tool for Swift, providing an alternative to assertions. Watch this 5-minute demo to learn the basics of getting started.| Quality Coding
How do we automate tests for SwiftUI? Should we even bother? And does test-driven development (TDD) apply to SwiftUI? [This post is part of the TDD with SwiftUI series.] Table of Contents SwiftUI Testing: The ChallengeCounter DemoCounter Source CodeHow Would You Test This?Don’t miss a single post in this exciting series. SwiftUI Testing: The ChallengeIn my […]| Quality Coding
Struggling with a thousand-line view controller with minimal tests? Learn the legacy code rescue techniques I used on an iOS app.| Quality Coding
Discover how Swift 6's @MainActor isolation impacts XCTest, with tips on handling concurrency warnings for view controller testing.| Quality Coding
See how my code changes as I pair program with Swift 6. Join us for a fun conversation about working with strict concurrency for data race safety.| Quality Coding
Learn how to overcome Xcode's slow test feedback and enhance your TDD workflow. Follow our steps to achieve faster test feedback, dropping from 47s to 1.6s.| Quality Coding
Do you use Xcode's "Unit Test Case Class" for new files? It's full of noise and waste. Go lean and save time by using my template instead.| Quality Coding
A feature of ApprovalTests called “combination approvals” can help you bring legacy code under test. Write tens or hundreds of test cases in a few lines.| Quality Coding
ApprovalTests.Swift makes it easy to write powerful parameterized tests. Verify a sequence of inputs, but transform the values through the function you want.| Quality Coding