import UIKit import XCTest protocol URLServiceProtocol { func networkCall() -> Bool } class URLService: URLServiceProtocol { private init() {} static let shared = URLService() func networkCall() -> Bool { // URLSession code return true } } class MockURLService: URLServiceProtocol { func networkCall() -> Bool { // Mock URLSession code return false } } class NetworkClass { let urlService: URLServiceProtocol init(urlService: URLServiceProtocol) { self.urlService = urlService } func useNC() -> Bool { return urlService.networkCall() } } let nc = NetworkClass(urlService: URLService.shared) class tests: XCTestCase { func testNetworkClass() { let mock = MockURLService() let nc = NetworkClass(urlService: mock) XCTAssertEqual(nc.useNC(), false) } } tests.defaultTestSuite.run()