-
Notifications
You must be signed in to change notification settings - Fork 108
Update the messaging around the use of deinit for teardown #551
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -97,7 +97,7 @@ For more information about suites and how to declare and customize them, see | |
In XCTest, you can schedule code to run before a test using the | ||
[`setUp()`](https://developer.apple.com/documentation/xctest/xctest/3856481-setup) | ||
family of functions. When writing tests using the testing library, you can use | ||
`init()` for setup. Your suite's initializer can be async, throwing, or | ||
`init()` for setup. Your suite's initializer can be `async`, `throwing`, or | ||
actor-isolated if necessary. | ||
|
||
@Row { | ||
|
@@ -132,8 +132,8 @@ family of functions. When writing tests using the testing library, adopt structu | |
[concurrency](https://docs.swift.org/swift-book/documentation/the-swift-programming-language/concurrency/) | ||
and take advantage of Swift to handle cleanup for you where possible rather | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can you clarify what feature(s) of Swift concurrency, or which APIs, you mean here which assist with cleanup? I can think of There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think what we should aim to push people towards is using There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. That's something they have to write themselves, and explaining how to write one would get us into the weeds a bit. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There is precedent for describing how testing helps you design nicer APIs and vice versa, and it's something Apple has already published in the Xcode documentation: https://developer.apple.com/documentation/xcode/updating-your-existing-codebase-to-accommodate-unit-tests So maybe we could take a similar approach here, where we show a There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Would this be an appropriate place to use a snippet? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think an example here would be extremely helpful for users trying to migrate |
||
than relying on a dedicated teardown method. If teardown is necessary, declare | ||
your test suite as a `final` class or actor and implement `deinit`. Your cleanup | ||
operations should be quick, synchronous, and non-throwing. | ||
your test suite as a class or actor, and implement `deinit` with operations | ||
that are synchronous and non-throwing. | ||
|
||
@Row { | ||
@Column { | ||
|
Uh oh!
There was an error while loading. Please reload this page.