いくつかのタイマー検証用にXCTestCaseを作成しています。私のタイマーは30秒に1回実行され、シングルトンオブジェクトの実行カウントを追跡しますMySessionObject
MySessionObject
は[MySession sharedSession]
を指すマクロです。XCTestCase内のシングルトンオブジェクトにアクセスできないObjective C
問題は、私がテストを実行しているとき、私はいつも0
をMySessionObject.timerCount
にしています。しかし、アプリケーションターゲット経由で実行すると、正しく設定されます。
シングルトンをロードするために私がここに欠けているものとして何か手掛かりがありますか?私の前提は、テストターゲットによるアプリケーションの起動で設定しなければならないということでした。
NSInteger timerCountsToTest = 2;
// Adding a delay to counter network operation
[NSThread sleepForTimeInterval:(30 * timerCountsToTest) + 2];
XCTAssertEqual(timerCountsToTest, MySessionObject.timerCount, "Timer did not work properly.");
私はこれがワークスペースと関係していると思います。テストワークスペースはアプリケーションワークスペースとは異なります。 – Abhinav
@JoshCaswell私の答えを見てください。私はこの方法でそれを働いた。より良い解決策がある場合は、アドバイスをお願いします。 – Abhinav