
Swift Protocol Di Testing
This teaches protocol-based dependency injection for Swift testing, which is the right way to test code that hits the file system, network, or external APIs without actually doing I/O. You define small protocols for each external concern (file access, network calls), inject default implementations in production and mocks in tests. The examples show actors using Sendable protocols with Swift Testing, and the mock implementations let you simulate read errors or missing containers without touching real resources. It's focused on testing boundaries, not over-engineering internal types. If you're writing Swift code that needs deterministic tests for cloud sync, file operations, or API calls, this is the standard pattern.
- skills.sh installs
- 5.4K
- GitHub stars
- 300.3K
- last updated
- Aug 21, 2026
Install
$ npx -y skills add affaan-m/ecc --skill swift-protocol-di-testing --agent claude-codeInstalls into .claude/skills of the current project.
Files
Swift Protocol-Based Dependency Injection for Testing
Patterns for making Swift code testable by abstracting external dependencies (file system, network, iCloud) behind small, focused protocols. Enables deterministic tests without I/O.
When to Activate
- Writing Swift code that accesses file system, network, or external APIs
- Need to test error handling paths without triggering real failures
- Building modules that work across environments (app, test, SwiftUI preview)
- Designing testable architecture with Swift concurrency (actors, Sendable)
Core Pattern
1. Define Small, Focused Protocols
Each protocol handles exactly one external concern.
// File system access
public protocol FileSystemProviding: Sendable {
func containerURL(for purpose: Purpose) -> URL?
}
// File read/write operations
public protocol FileAccessorProviding: Sendable {
func read(from url: URL) throws -> Data
func write(_ data: Data, to url: URL) throws
func fileExists(at url: URL) -> Bool
}
Sponsors
Details
- Repository
- github.com/affaan-m/ecc
- Categories
- Testing & QA, Mobile Development
- First seen
- Jul 14, 2026
More from affaan-m/ecc
All 263- Energy Procurement5.4K
- Swift Actor Persistence5.4K
- Quarkus Security5.4K
- Social Graph Ranker5.4K
- Network Bgp Diagnostics5.4K
- Visa Doc Translate5.4K
- Flox Environments5.4K
- Unified Notifications Ops5.4K
- Project Flow Ops5.4K
- Social Publisher5.4K
- Hermes Imports5.4K
- Evm Token Decimals5.4K
- Perl Patterns5.4K
- Quarkus Tdd5.4K
- Quarkus Verification5.4K
- Ralphinho Rfc Pipeline5.4K
- Perl Testing5.4K
- Nanoclaw Repl5.4K
- Messages Ops5.4K
- Recsys Pipeline Architect5.4K
- Latency Critical Systems5.3K
- Fsharp Testing5.3K
- Tinystruct Patterns5.3K
- Uncloud5.3K