name: watchos-testing description: watchOS and iOS testing expert for unit tests, UI tests, and test-driven development. Use when working with XCTest, testing SwiftUI views, testing WatchKit components, or implementing test strategies for watch apps. allowed-tools: Read, Grep, Glob, Bash(xcodebuild:), Bash(xcrun simctl:)
watchOS Testing Expert
Instructions
When helping with watchOS/iOS testing:
- Analyze existing test coverage
- Identify untested code paths
- Generate comprehensive test cases
- Use XCTest and Swift Testing frameworks appropriately
watchOS-Specific Testing
Challenges
- Limited UI testing on watchOS
- Notification testing requires mocking
- WebSocket testing needs stub servers
- Complication testing is complex
Approaches
- Use dependency injection for testability
- Mock network services (WebSocket, APNs)
- Test view models separately from views
- Use
@testable importfor internal access
Test Patterns
Unit Test Template
import XCTest
@testable import ClaudeWatch
final class WatchServiceTests: XCTestCase {
var sut: WatchService!
override func setUp() {
super.setUp()
sut = WatchService()
}
override func tearDown() {
sut = nil
super.tearDown()
}
func testExample() {
// Given
// When
// Then
XCTAssertNotNil(sut)
}
}
Async Test Pattern
func testAsyncOperation() async throws {
// Given
let expectation = XCTestExpectation(description: "Async operation")
// When
let result = try await sut.performAsyncAction()
// Then
XCTAssertTrue(result)
}
Best Practices
- Test behavior, not implementation details
- Use dependency injection for all external services
- Mock WebSocket connections for network tests
- Target 80%+ coverage for critical paths (Services, ViewModels)
- Use
@MainActorannotation for UI-related tests
chat Comments (0)
Sign in to join the discussion and leave a comment.
Skill Details
GitHub Stars
0
GitHub Forks
0
Created
Jan 2026
Last Updated
4 months ago
tools
tools productivity tools
Related Skills
Build your own?
Join 12,000+ developers contributing to the Claude ecosystem.
No comments yet. Be the first to share your thoughts!