アプリで正常なログインをテストしようとしています。XCTest:UIテストのNSUserdefaultsで値が取得されないクラス
TestClass
で私はログインがアプリで成功した場合trueに設定されているNSUserdefault
にBool
の値を取得しています。
コード: 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で取得されない理由を知ることができますか? Smriti
あなたのアプリのバンドルIDでユーザーデフォルトを初期化できますか?また、非同期コードを正しい方法でテストしていますか? – GoodSp33d
あなたのテストで 'onGetSyncStatusChange'を呼び出しますか? GoodSp33d @ – dasdom
:NSUserDefaults * USERDEF = [[NSUserDefaults ALLOC] initWithSuiteName: "com.infosys.marketingpadbshdevtest2" @]はい、私はアプリケーションバンドルIDとuserdefault初期化しようとしました。 同期が行われても、まだfalseになっています。また、私は非同期タスクのためにXCTwaiterを使用しています。 – Smriti10