Skip to content

Instantly share code, notes, and snippets.

@JoshuaSullivan
Created December 18, 2018 21:17
Show Gist options
  • Save JoshuaSullivan/ec730a453f0a1c24642cbd014229aee5 to your computer and use it in GitHub Desktop.
Save JoshuaSullivan/ec730a453f0a1c24642cbd014229aee5 to your computer and use it in GitHub Desktop.
A guide to mocking objects with static methods...
protocol AnalyticsBackEnd {
static func log(_ name: String)
}
extension Analytics: AnalyticsBackEnd {}
class AnalyticsService {
let backEnd: AnalyticsBackEnd.Type
init(backEnd: AnalyticsBackEnd.Type = Analytics.self) {
self.backEnd = backEnd
}
func log(event: String) {
backEnd.log(event)
}
}
func testAnalyticsLogging() {
let subject = AnalyticsService(backEnd: MockAnalyticsBackEnd.self)
// Test...
}
@mhergon
Copy link

mhergon commented Nov 14, 2024

Hi! Are you tried with Swift 5/6?
It's not working for me. Would you know how to make it work?

Captura de pantalla 2024-11-14 a las 18 02 12

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment