在测试类中的视图模型中初始化模拟问题-swift

在测试类中的视图模型中初始化模拟问题-swift,swift,unit-testing,mocking,initialization,Swift,Unit Testing,Mocking,Initialization,我试图设置一个视图模型,用于测试各种模拟存储库,在测试类中加载模拟时遇到问题-我在主视图模型中创建了一个初始值设定项,该初始值设定项应包括三个存储库,如果未选择任何内容,则将它们设置为实际存储库,但请允许我在测试类中选择一个符合每个存储库协议的不同模拟 我在加载测试类时遇到的问题是,我的两个存储库的变量不在范围内。你知道什么会导致这种错误吗 class SeasonGoalsViewModel { @Published var goalRepository: GoalStoreType

我试图设置一个视图模型,用于测试各种模拟存储库,在测试类中加载模拟时遇到问题-我在主视图模型中创建了一个初始值设定项,该初始值设定项应包括三个存储库,如果未选择任何内容,则将它们设置为实际存储库,但请允许我在测试类中选择一个符合每个存储库协议的不同模拟

我在加载测试类时遇到的问题是,我的两个存储库的变量不在范围内。你知道什么会导致这种错误吗

class SeasonGoalsViewModel {
    @Published var goalRepository: GoalStoreType
    @Published var seasonRepository: SeasonStoreType?
    @Published var seasonLength: SeasonLength?
    
    var userProfile: UserProfile
    
    init(goalRepository: GoalStoreType = GoalRepository(), seasonRepository: SeasonStoreType? = SeasonRepository(), userProfile: UserProfile? = CurrentUserProfile.shared.currentUser) {
        self.goalRepository = goalRepository
        self.seasonRepository = seasonRepository
        self.userProfile = userProfile!
    }
}

在创建
sut
对象时,我在seasonRepository上发现错误,说“在范围内找不到'seasonRepository',在userProfile上说“在范围内找不到'userProfile'”。

=
替换为
设置()

import XCTest
    @testable import MyApp
    
    class SeasonGoalsViewModelTests: XCTestCase {
        
        var sut: SeasonGoalsViewModel!
        
        override func setUp() {
            super.setUp()
            sut = SeasonGoalsViewModel(goalRepository: MockGoalsRepository(), seasonRepository: MockSeasonRepository(), userProfile: TestUserProfile.shared.userProfile)
        }
我的天啊,谢谢你。
import XCTest
    @testable import MyApp
    
    class SeasonGoalsViewModelTests: XCTestCase {
        
        var sut: SeasonGoalsViewModel!
        
        override func setUp() {
            super.setUp()
            sut = SeasonGoalsViewModel(goalRepository: MockGoalsRepository(), seasonRepository: MockSeasonRepository(), userProfile: TestUserProfile.shared.userProfile)
        }