[弱变量在编写测试用例时变为零?

问题描述 投票:-1回答:1

嗨,我正在使用弱变量在ViewModel中为一个函数编写测试用例,

在测试函数时,弱变量变为nil,我也实例化了它,并在调用测试函数之前将值提供给了该对象。为什么它变为nil,然后如何对其进行测试!!!>

还我不能使弱变量成为强类型!,在其他代码上工作

编译器警告-因为属性'source'为'弱',实例将被立即释放

CODE

func testFundTrip() {
     viewModel.source = SourceViewTypeMock()
     viewModel.fundTrip(trip)
}

在ViewModel中

func fundTrip(_ trip: TravelTrip) {
        if let source = source { 
          // Here source is becoming nil ?? why 
        }
    }

是否存在带有范围为变量的测试用例方法?

嗨,我正在使用弱变量的ViewModel中为函数编写一个测试用例,在测试该函数时,弱变量变为nil,我也将其实例化并提供了...

ios swift xctest xctestcase
1个回答
0
投票
警告会告诉您正在发生的事情。您只有一个弱的指向值的指针,因此没有什么可以使您的SourceViewTypeMock在赋值语句之后仍然有效。解决方案是创建一个强大的参考。您需要一个不允许编译器优化的函数,因此它必须在此函数之外。因此,您可以将其设为测试用例的属性。
© www.soinside.com 2019 - 2024. All rights reserved.