2016-01-04 55 views
0

贝娄我提到了我的模型对象。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": "[email protected]", "currency": "USD", "language": "en-us", "category": "individual"]] 
    let modelObject = HVConnection(data: connectionObject) 

    XCTAssertEqual(modelObject.last_name, "Lasantha") 
} 

波纹管我刚才提到的错误

XCTAssertEqual失败:( “无”),不等于( “可选(” Lasantha “)”)

请帮我解决问题

+0

当你创建modelObject,并且你做'modelObject.last_name'它是否返回正确的值?我想也许你传递的字典只有一个关键/价值与“网络” –

回答

0

您的问题是,你不能使用

_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": "[email protected]", 
    "currency": "USD", 
    "language": "en-us", 
    "category": "individual"] 
] 

为了让您的last_name,你已经拿到字典键network得到真正的字典,一旦你有了这个,你可以检查你从network密钥last_name得到的字典。