2016-05-15 8 views
0

私はキーチェーンで基本的な単体テストをしようとしています。私は(「setStringのは」trueを返す)が正常にキーの値を設定することができ、私も5秒の遅延の後、値を取得しようとすると、しかし、復帰はまだゼロである:SwiftKeychainWrapper xctest returns nil

class MyKeychainTest: XCTestCase { 
    func checkKeychain(timer: NSTimer) { 
     debugPrint("check keychain...") 
     let userInfo = timer.userInfo as! [String: AnyObject] 
     let expectation = userInfo["expectation"] as! XCTestExpectation 

     let res = KeychainWrapper.objectForKey("myKey") 
     debugPrint("got res: \(res)") 
     XCTAssertNotNil(res) 

     expectation.fulfill() 
    } 

    func testKeychain() { 
     let expectation = expectationWithDescription("gotKey") 
     let success = KeychainWrapper.setString("foo", forKey: "myKey") 
     debugPrint("set key?: \(success)") 

     NSTimer.scheduledTimerWithTimeInterval(5.0, target: self, selector: #selector(self.checkKeychain) 
     , userInfo: ["expectation": expectation ], repeats: false) 

     self.waitForExpectationsWithTimeout(10, handler: nil) 
    } 
} 

すべてのアイデアは、上何が原因でしょうか?

ありがとうございました

答えて

0

誤ってキーを取得する方法を使用しました。 KeychainWrapper.objectForKey("myKey")の代わりにKeychainWrapper.stringForKey("myKey")を使用します。前者の場合でもオブジェクトが返されないという不思議。