Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios SwiftyJSON未正确从文件初始化_Ios_Swift_Unit Testing_Swifty Json - Fatal编程技术网

Ios SwiftyJSON未正确从文件初始化

Ios SwiftyJSON未正确从文件初始化,ios,swift,unit-testing,swifty-json,Ios,Swift,Unit Testing,Swifty Json,我试图从我的测试目标包中读入一个文件,将该文件转换为NSData,并将所述数据传递给我的类,然后用它实例化一个SwiftyJSON实例。似乎我的数据生成正确,但我的SwiftyJSON实例似乎为空,而且当我查找不存在的标识符时,测试失败(测试应返回false,但返回true) 我的测试用例: class ParseListingTests: XCTestCase { var testData: NSData! var testJson: AnyObject? var mut: ParseLis

我试图从我的测试目标包中读入一个文件,将该文件转换为NSData,并将所述数据传递给我的类,然后用它实例化一个SwiftyJSON实例。似乎我的数据生成正确,但我的SwiftyJSON实例似乎为空,而且当我查找不存在的标识符时,测试失败(测试应返回false,但返回true)

我的测试用例:

class ParseListingTests: XCTestCase {

var testData: NSData!
var testJson: AnyObject?
var mut: ParseListing?


override func setUp() {
    super.setUp()
    // Put setup code here. This method is called before the invocation of each test method in the class.
    let bundle: NSBundle =  NSBundle(forClass: self.dynamicType)
    let sampleJson: String! = bundle.pathForResource("testsample", ofType: nil)

    do { testData = try! NSData(contentsOfFile: sampleJson, options: NSDataReadingOptions.DataReadingMappedIfSafe ) }

    if testData.isKindOfClass(NSData) { print("data is correct type") }

    print(String.init(data: testData, encoding: NSUTF8StringEncoding)!)

    mut = ParseListing(dataFromNetworking: testData!)
}

func testInit() {
    XCTAssertNotNil(mut, "Class should initalize properly")
    let test: Bool = (mut?.startParse())!
    XCTAssertFalse(test, "first parse pass") // This assertion fails
}
我的测试班:

class ParseListing {
//MARK: Class lifecycle
init(dataFromNetworking: NSData) {
    self.json = JSON(dataFromNetworking)
}

//MARK: Class variables
let json: JSON!

//MARK: Class parsing func's
func startParse() -> Bool {
    print("SwiftyJSON.rawString(): \(json.rawString())")
    return json["qzqzqz"].isExists()
}
我的测试样本:

{"has_mail": false, "name": "another_test_acct", "created": 1447203562.0, "hide_from_robots": false, "gold_creddits": 0, "created_utc": 1447174762.0, "has_mod_mail": false, "link_karma": 1, "comment_karma": 0, "over_18": true, "is_gold": false, "is_mod": false, "id": "rwuhe", "gold_expiration": null, "inbox_count": 0, "has_verified_email": false, "is_suspended": false, "suspension_expiration_utc": null}
我的日志输出:


20:07:33.580 RedditClient[25599:333771]\u XCT\u testBundleReadyWithProtocolVersion:最低版本:收到回复 20:07:33.641 RedditClient[25599:333771]\u IDE_startex使用协议执行测试计划:16 测试套件“选定测试”于2015-12-06 20:07:33.646开始 测试套件“ParseListingTests”于2015-12-06 20:07:33.647开始 测试用例“-[RedditClientTests.ParseListingTests testInit]”已启动

数据类型正确

{“has_mail”:false,“name”:“other_test_acct”,“created”:1447203562.0,“hide_from_robots”:false,“gold_creddits”:0,“created_utc”:1447174762.0,“has_mod_mail”:false,“link_karma”:1,“comment_karma_”:0,“over_18”:true,“is_gold”:false,“id”:“rwue”,“gold_expiration”:null,“收件箱计数”:0,“已验证电子邮件”:false,“is_suspended”:false,“Suspending_expiration_utc”:null}

SwiftyJSON.rawString():nil

~/ParseListingTests.swift:38:错误:-[RedditClientTests.ParseListingTests testInit]:XCTAssertFalse失败-第一次分析通过 测试用例“-[RedditClientTests.ParseListingTests testInit]”失败(0.004秒)。 测试套件“ParseListingTests”于2015-12-06 20:07:33.652失败。 执行1次测试,在0.004(0.005)秒内出现1次故障(0次意外) 测试套件“选定测试”于2015-12-06 20:07:33.652失败。 执行1次测试,在0.004(0.007)秒内出现1次故障(0次意外)


init(dataFromNetworking: NSData) {
self.json = JSON(data: dataFromNetworking)