// // MJRefreshSupportTests.swift // suixinkanTests // // Created by Codex on 2026/6/26. // import XCTest @testable import suixinkan /// MJRefresh SwiftUI 桥接测试,覆盖滚动视图查找辅助逻辑。 final class MJRefreshSupportTests: XCTestCase { /// 测试锚点视图能向上找到最近的 UIScrollView。 func testEnclosingScrollViewFindsParentScrollView() { let scrollView = UIScrollView(frame: CGRect(x: 0, y: 0, width: 320, height: 480)) let container = UIView(frame: scrollView.bounds) let anchor = UIView(frame: .zero) scrollView.addSubview(container) container.addSubview(anchor) XCTAssertIdentical(anchor.enclosingScrollView, scrollView) } /// 测试没有父级 ScrollView 时返回 nil。 func testEnclosingScrollViewReturnsNilWithoutScrollView() { let view = UIView(frame: .zero) XCTAssertNil(view.enclosingScrollView) } } extension MJRefreshSupportTests { /// 断言两个对象引用相同。 fileprivate func XCTAssertIdentical(_ expression1: AnyObject?, _ expression2: AnyObject?, file: StaticString = #filePath, line: UInt = #line) { if expression1 !== expression2 { XCTFail("Expected identical objects", file: file, line: line) } } }