I'm trying to understand if there is something within XCTest
framework that prevents my test class from seeing convenience initializer defined in a class for the module I'm testing? I'm using @testable import to override and subclass non-open classes.
The tests were running correctly before. Is this some XCode 11.4 bug?
I have multiple versions of this error, every time it is the convenience initializer, even if it is declared public.
Error Missing argument for parameter 'repository' in call
//Inside FrameworkModule
public class RealObject {
init(repository: SomeRepository) {
//designated initializer
}
convenience override init() {
// Use default repository
}
}
//Inside Test class:
@testable import FrameworkModule
class MockObject: RealObject {
//Inherits initializers from RealObject
}
class TestHelper: NSObject {
var mockObject: MockObject!
}
override init() {
mockObject = MockObject() //Error Missing argument for parameter 'repository' in call
}
}