我想测试我的代码和行为。在这种情况下,我重写了Alamofire的NetworkReachabilityManager和open var isReachable。在我的测试用例中,将调用NetworkReachabilityManager的isReachable方法,但不会调用MockNetworkReachabilityManager。
func testIsReachable() {
let mockNetworkReachabilityManager = MockNetworkReachabilityManager()
XCTAssertFalse(mockNetworkReachabilityManager!.isReachable)
}
class MockNetworkReachabilityManager: NetworkReachabilityManager {
override var isReachable: Bool {
return false
}
}
如果你使用协议并覆盖isReachable
方法,最好的解决方案是。然后我可以写一个`MockNetworkReachabilityManager``
protocol CustomNetworkReachability {
var isReachable: Bool { get }
}
extension NetworkReachabilityManager: CustomNetworkReachability {}
class MockNetworkReachabilityManager: CustomNetworkReachability {
var isReachable: Bool {
return false
}
}