Skip to content

Commit 4360c98

Browse files
pilot34Gleb Tarasov
andauthored
Make tests more stable (#23)
Co-authored-by: Gleb Tarasov <[email protected]>
1 parent 97a62a9 commit 4360c98

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

PerformanceSuite/Tests/ViewControllerLeaksObserverTests.swift

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,19 @@ class ViewControllerLeaksObserverTests: XCTestCase {
1818
continueAfterFailure = false
1919
}
2020

21+
override func tearDown() {
22+
super.tearDown()
23+
// Ensure swizzling is always cleaned up, even if test fails
24+
try? ViewControllerSubscriber.shared.unsubscribeObservers()
25+
// Wait for queues to complete any pending work
26+
PerformanceMonitoring.queue.sync { }
27+
PerformanceMonitoring.consumerQueue.sync { }
28+
}
29+
2130
private func performLeakTest(expectLeak: Bool, viewControllerMaker: () -> UIViewController) throws {
31+
// Clean up any leftover swizzling from previous test failures
32+
try? ViewControllerSubscriber.shared.unsubscribeObservers()
33+
2234
let receiver = ViewControllerLeaksReceiverStub()
2335
receiver.expectation = expectation(description: "leak detected")
2436
receiver.expectation?.isInverted = !expectLeak

PerformanceSuite/Tests/ViewControllerSubscriberTests.swift

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,21 @@ import XCTest
1212

1313
class ViewControllerSubscriberTests: XCTestCase {
1414

15+
override func setUp() {
16+
super.setUp()
17+
// Clean up any leftover swizzling from previous test failures
18+
try? ViewControllerSubscriber.shared.unsubscribeObservers()
19+
}
20+
21+
override func tearDown() {
22+
super.tearDown()
23+
// Ensure swizzling is always cleaned up, even if test fails
24+
try? ViewControllerSubscriber.shared.unsubscribeObservers()
25+
// Wait for queues to complete any pending work
26+
PerformanceMonitoring.queue.sync { }
27+
PerformanceMonitoring.consumerQueue.sync { }
28+
}
29+
1530
func testAllMethodsAreCalled() throws {
1631
let o = Observer()
1732
try ViewControllerSubscriber.shared.subscribeObserver(o)

0 commit comments

Comments
 (0)