0
當我運行以下測試用例時,testRemovePref方法失敗,因爲它實際上並未刪除該值。我使用Xcode 7.2。這是爲什麼發生?爲什麼我不能在swift中刪除NSUserDefaults鍵?
編輯:這隻在測試屬於框架庫時纔會發生。下面的測試似乎在應用程序中運行時工作正常。奇。
import XCTest
class NSUserDefaultsTests: XCTestCase {
func testSetPref() {
let prefs = NSUserDefaults.standardUserDefaults()
prefs.setValue("value1", forKeyPath: "testKey")
let val : String? = prefs.stringForKey("testKey")
print("value=\(val)") // prints "value1"
XCTAssertEqual("value1", val)
}
func testRemovePref() {
let prefs = NSUserDefaults.standardUserDefaults()
prefs.removeObjectForKey("testKey")
let val : String? = prefs.stringForKey("testKey")
print("value=\(val)") // prints "value1"
XCTAssertNil(val)
}
}
這很奇怪,我跑你的測試,他們都通過了。 –
你打電話給他們?有沒有機會調用'testSetPref'兩次? –
您的測試不應該依賴於其他測試的副作用。據我所知,XCTest不保證你的測試將按你寫的順序運行。 –