所以我想编写一个测试来声明已经创建了一个类的实例。我最初的反应是编写一个测试来检查接收类为null的变量,但是有人指出这在Swift中不起作用因为选项,并且如果我打开包含null的东西,程序将崩溃。
那么如何测试是否已正确创建类或任何对象?
我在Xcode 7中使用Swift 2.2。
如果低估,请告诉我问题或格式有什么问题。
答案 0 :(得分:0)
如果让Swift方式做这种事情:
if let object = MyObject.init() {
//the object exists
} else {
//the object is nil
}
答案 1 :(得分:0)
如果你在XCTest
的上下文中谈论,如果你想测试以确保它被实例化,你可以这样做:
func testMyObjectInstantiation() {
let object = MyObject(value: 42)
XCTAssert(object != nil, "instantiation failed")
}
或者
func testMyObjectInstantiation() {
let object = MyObject(value: 42)
XCTAssertNotNil(object, "instantiation failed")
}
答案 2 :(得分:0)
最好的解决方案是守卫声明
使用guard let语句可以检查一个值是不是nil,否则执行else块si。在else块中,您必须使用fatalError
,throw
或return
停止执行当前代码。
guard let num = Int(text) else {
fatalError()
}
守卫声明之一就是你可以使用checked变量及其类型的下一行不是可选的。
guard let num = Int(text) else {
fatalError()
}
let next = num + 1
print(next)
查看示例,num的类型为Int
,而不是Int?
。这意味着如果后卫成功了,我就不需要关心打开。