我正在尝试在应用程序中测试成功登录。
TestClass中,我正在获取Bool中的NSUserdefault值,该值在应用程序中成功登录时设置为true。
代码:
LoginViewController:ViewController

-(void) onGetSyncStatusChange:(SUPSyncStatusInfo*)info{
....
....

[[NSUserDefaults standardUserDefaults] setBool:true forKey:@"SynchronisationStatus"];

[[NSUserDefaults standardUserDefaults] synchronize];

}

问题:值在登录期间被设置为true,但在测试类中为
仍为false(默认值)。
class MarketingPadBoschUITests: XCTestCase {

    override func setUp() {....}

    override func tearDown() {...}

    func testLoginAndSync(){

    ....

    ....

    XCTAssertTrue(UserDefaults.standard.bool(forKey:   "SynchronisationStatus"),"Synchronisation Issue")

    print("Printing SynchronisationStatus :::   ",UserDefaults.standard.bool(forKey: "SynchronisationStatus"))
    }

}

有人知道为什么在testClass中没有检索到代码中设置的值吗?
当做,
史密提

最佳答案

UItest类无权访问应用程序的内部状态。因此,我们无法在UITest类中检索保存在应用程序代码中的用户默认值。如果我们想访问这些值,我们可以在UnitTest类中这样做。
在UITest类中,我通过在登录后在userdefault中编写自己的布尔键,并在必要时在其他测试函数中检查键的状态来检查同步状态(该键仅在UITest类中可访问,而不在外部)。

10-08 15:58