.llms/skills/testing.md
final.setUp() use implicitly unwrapped optionals.// swiftlint:disable implicitly_unwrapped_optional
var loginManager: LoginManager!
var settings: TestSettings!
// swiftlint:enable implicitly_unwrapped_optional
setUp() must create all test doubles and inject dependencies via setDependencies().super.setUp() first.@testable import for the module under test.TestTools for shared test doubles.@testable imports first.Test<RealType> (e.g., TestSettings, TestGraphRequestFactory).<Module>Tests/Helpers/ or in the shared TestTools module.Sample* factory types: SampleAccessTokens, SampleError, SampleURLs.captured* properties to record interactions:XCTAssertEqual(factory.capturedGraphPath, "/me")
XCTAssertTrue(delegate.capturedDidComplete)
<Module>/<Module>Tests/<Module>/<Module>Tests/Helpers/TestTools/TestTools/