Inheritance XCode 11.4 XCTest-模拟对象未从实际对象类中看到方便的初始值设定项

Inheritance XCode 11.4 XCTest-模拟对象未从实际对象类中看到方便的初始值设定项,inheritance,ios13,xctest,swift5.1,xcode11.4,Inheritance,Ios13,Xctest,Swift5.1,Xcode11.4,我试图了解在XCTest框架中是否存在阻止我的测试类看到为我正在测试的模块在类中定义的方便初始值设定项的东西?我正在使用@TestableImport来覆盖和子类化非开放类 之前的测试运行正常。这是XCode 11.4的错误吗 我有这个错误的多个版本,每次它都是方便的初始值设定项,即使它被声明为公共的 调用中缺少参数“repository”的参数时出错 //Inside FrameworkModule public class RealObject { init(repository

我试图了解在
XCTest
框架中是否存在阻止我的测试类看到为我正在测试的模块在类中定义的方便初始值设定项的东西?我正在使用@TestableImport来覆盖和子类化非开放类

之前的测试运行正常。这是XCode 11.4的错误吗

我有这个错误的多个版本,每次它都是方便的初始值设定项,即使它被声明为公共的

调用中缺少参数“repository”的参数时出错

//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
    }
}

我正在努力解决同样的问题,并发现这是由于中提到的一个变化

外部定义的子类的方便初始值设定项继承 定义基类的模块现在附带了额外的 限制。当这些子类具有非公共的基类时 指定的初始值设定项,它们不再自动继承 方便的初始化者从他们的超类。要恢复这一点 在自动继承行为中,基类必须确保 其指定的初始值设定人是公开的或公开的。(51249311)


我相信,如果您将所有指定的初始值设定项公开,您应该能够从单元测试类中看到它。

我正在努力解决同样的问题,并发现这是由于中提到的更改造成的

外部定义的子类的方便初始值设定项继承 定义基类的模块现在附带了额外的 限制。当这些子类具有非公共的基类时 指定的初始值设定项,它们不再自动继承 方便的初始化者从他们的超类。要恢复这一点 在自动继承行为中,基类必须确保 其指定的初始值设定人是公开的或公开的。(51249311)

我相信,如果您将所有指定的初始值设定项公开,您应该能够从单元测试类中看到它