【发布时间】:2024-05-20 18:40:01
【问题描述】:
我有一个带有计算变量的模型对象。现在我想测试变量的设置器。我写了一个测试用例,它给出了以下错误
XCTAssertEqual 失败:("nil") 不等于 ("Optional("example@gmail.com")") -
下面我提到了我写的测试用例
func testNetworkModelObjectSet() {
let testObject = ["network": ["first_name": "Dimuth", "last_name": "Lasantha", "business_email": "testemail@gmail.com", "currency": "USD", "language": "en-us", "category": "individual"]]
let network = HVConnection(data: testObject)
network.business_email = "example@gmail.com"
XCTAssertEqual(network.business_email, "example@gmail.com")
}
这里我提到了相关的模型对象变量
class HVConnection: NSObject {
//private var _data: NSMutableDictionary
private var _data: NSMutableDictionary
// MARK:- Init
init(data: NSDictionary)
{
_data = NSMutableDictionary(dictionary: data)
}
var business_email: String? {
get {
if let businessemailObject = _data.objectForKey("network")?.objectForKey("business_email") {
return (businessemailObject as! String)
} else {
return nil
}
}
set {
_data = ["business_email": newValue!]
}
}
}
【问题讨论】:
-
您应该将
XCTAssertEqualObjects用于对象,XCTAssertEqual用于原始类型,例如int、char、double等。 -
@rckoenes Swift 的
XCTest没有XCTAssertEqualObjects。 -
@Cristik 你是对的,在两者之间切换。