我无法理解为什么我需要"强行打开"在我的测试中输入变量类型。
让我举个例子来说明一点:
class testSomething: XCTestCase {
var mockService: MockService!
override func setUp() {
mockService = MockService()
}
...
因此,我的目标显然是每次运行测试时都要创建一个新的模拟服务实例。我只是不明白为什么我需要将此变量声明为MockService!
类型。类型之后的感叹号在这种情况下真正意味着什么?
请注意,当我声明mockService: MockService
Xcode抱怨我的测试类没有初始值设定项时
答案 0 :(得分:1)
在声明行
中初始化非可选变量var mockService = MockService()
或init()
方法
var mockService : MockService
init() {
mockService = MockService()
}
如果无法做到这一点,请将变量声明为强制解包,并确保变量在使用时不是nil
。然后它的行为就像一个非可选的。