用于测试模型对象的 XCTest
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 failed: ("nil") is not equal to ("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
的字典才能得到实际的字典,一旦你有了它,你就可以检查你从中得到的字典键 last_name
.
的 network
键
下面我提到了我的模型对象。
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 failed: ("nil") is not equal to ("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
的字典才能得到实际的字典,一旦你有了它,你就可以检查你从中得到的字典键 last_name
.
network
键