diff --git a/shell/platform/darwin/ios/framework/Source/FlutterViewControllerTest.mm b/shell/platform/darwin/ios/framework/Source/FlutterViewControllerTest.mm index 9f4348dd6812f..06007d72c4d9f 100644 --- a/shell/platform/darwin/ios/framework/Source/FlutterViewControllerTest.mm +++ b/shell/platform/darwin/ios/framework/Source/FlutterViewControllerTest.mm @@ -101,15 +101,22 @@ - (void)testViewDidDisappearDoesPauseEngineWhenIsTheViewController { } - (void)testBinaryMessenger { - id engine = OCMClassMock([FlutterEngine class]); - FlutterViewController* vc = [[FlutterViewController alloc] initWithEngine:engine - nibName:nil - bundle:nil]; - XCTAssertNotNil(vc); - id messenger = OCMProtocolMock(@protocol(FlutterBinaryMessenger)); - OCMStub([engine binaryMessenger]).andReturn(messenger); - XCTAssertEqual(vc.binaryMessenger, messenger); - OCMVerify([engine binaryMessenger]); + __weak FlutterViewController* weakVC; + @autoreleasepool { + id engine = OCMClassMock([FlutterEngine class]); + FlutterViewController* vc = [[FlutterViewController alloc] initWithEngine:engine + nibName:nil + bundle:nil]; + XCTAssertNotNil(vc); + weakVC = vc; + id messenger = OCMProtocolMock(@protocol(FlutterBinaryMessenger)); + OCMStub([engine binaryMessenger]).andReturn(messenger); + XCTAssertEqual(vc.binaryMessenger, messenger); + OCMVerify([engine binaryMessenger]); + // This had to be added to make sure the view controller is deleted. + [engine stopMocking]; + } + XCTAssertNil(weakVC); } #pragma mark - Platform Brightness