Open
Description
A protocol inheriting from a protocol with associated type will also inherit any configured typealias types for its generated mock, e.g.:
/// @mockable(typealias: ContextType = Int; ObjectType = String)
protocol ProtocolA {
associatedtype ContextType
associatedtype ObjectType
func createObject(withContext context: ContextType) -> ObjectType?
}
/// @mockable
protocol ContextProtocol {}
/// @mockable
protocol ObjectProtocol {}
/// @mockable(typealias: ContextType = ContextProtocol; ObjectType = ObjectProtocol)
protocol ProtocolB: ProtocolA where ContextType: ContextProtocol, ObjectType: ObjectProtocol {}
——————
final class ProtocolAMock: ProtocolA {
typealias ContextType = Int
typealias ContextType = String
// Mock implementation…
}
final class ProtocolBMock: ProtocolB {
typealias ContextType = Int // Not the expected/desired ContextProtocol
typealias ContextType = String // Not the expected/desired ObjectProtocol
// Mock implementation…
}
Metadata
Assignees
Labels
No labels
Activity