簡體   English   中英

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失敗:(“ 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM