[英]XCTest for test model objects
在下面,我已經提到了我的模型對象。
class HVConnection: NSObject {
//private var _data: NSMutableDictionary
private var _data: NSMutableDictionary
// MARK:- Init
init(data: NSDictionary)
{
_data = NSMutableDictionary(dictionary: data)
}
// MARK:- Properties
var last_name: String? {
if let lastNameObject = _data.objectForKey("last_name") {
return (idObject as! String)
} else {
return nil
}
}
}
然后我實現了一個測試用例來檢查變量。 波紋管我已經提到了測試用例。
func testNetworkModelObject() {
let connectionObject = ["network": ["first_name": "Dimuth", "last_name": "Lasantha", "business_email": "example@gmail.com", "currency": "USD", "language": "en-us", "category": "individual"]]
let modelObject = HVConnection(data: connectionObject)
XCTAssertEqual(modelObject.last_name, "Lasantha")
}
在下面我已經提到了錯誤
XCTAssertEqual失敗:(“ nil”)不等於(“” Optional(“ Lasantha”)“)
請幫助我解決問題
您的問題是您無法使用
_data.objectForKey("last_name")
在HVConnection
因為它嵌套在另一個稱為network
字典鍵中。
因此,改用:
// MARK:- Properties
var last_name: String? {
if let lastNameObject = _data.objectForKey("network")?.objectForKey("last_name") {
return (lastNameObject as! String)
} else {
return nil
}
}
這是為了演示使用中的詞典:
["network": // your dictionary is a dictionary within a dictionary
["first_name": "Dimuth",
"last_name": "Lasantha",
"business_email": "example@gmail.com",
"currency": "USD",
"language": "en-us",
"category": "individual"]
]
為了獲取您的last_name
,您必須獲取密鑰network
的字典以獲取實際的字典,一旦有了該字典,就可以檢查該字典是否從network
密鑰中獲取密鑰last_name
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.