Post

Replies

Boosts

Views

Activity

Reply to How to test an iOS app with multiple developers?
Your problems lay with provisioning. On a development team typically one member has an account that the project is managed under and will invite other users to be members of that team. A unique Apple ID can be a member of multiple teams, which has really streamlined things. This way by setting all the provisioning to a Team account you don't have to worry about other members checking in their provisioning into your version control. Ideally you'll have Xcode manage all your provisioning. As your teams and builds become more complicated the profile management does too, but It sounds like you're in a position for Xcode to do it all.
Jun ’20
Reply to How Do I Test an API With Swift Concurrency
This is not an answer but an expanded example: class TestAwaitTests: XCTestCase { struct Thing { let value = true func doSomething() async throws -> Int? { try await Task.sleep(nanoseconds: 5_000_000_000) return 1 } } func validation(thing: Thing, file: StaticString = #file, line: UInt = #line) { XCTAssertFalse(thing.value) XCTAssertTrue(thing.value) // Breakpoint here } func testTest() async throws { continueAfterFailure = false let thing = Thing() let result = try await thing.doSomething() print("print 1") XCTAssertNil(result) print("print 2") XCTAssertNotNil(result) print("print 3") validation(thing: thing) enum Err: Error { case oops } throw Err.oops print("print 4") } } Results in the console output print 1 print 2 print 3 The test fails, as expected. What is unexpected is that the statements print 2 and print 3 are produced. The line marked Breakpoint here should never execute. I can see it hit even in the debugger continueAfterFailure should be stopping the test first assertion.
Mar ’22