2016-05-16 3 views
0

いくつかのタイマー検証用にXCTestCaseを作成しています。私のタイマーは30秒に1回実行され、シングルトンオブジェクトの実行カウントを追跡しますMySessionObjectMySessionObject[MySession sharedSession]を指すマクロです。XCTestCase内のシングルトンオブジェクトにアクセスできないObjective C

問題は、私がテストを実行しているとき、私はいつも0MySessionObject.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."); 
+1

私はこれがワークスペースと関係していると思います。テストワークスペースはアプリケーションワークスペースとは異なります。 – Abhinav

+0

@JoshCaswell私の答えを見てください。私はこの方法でそれを働いた。より良い解決策がある場合は、アドバイスをお願いします。 – Abhinav

答えて

0

私は、最終的には、アプリに隠されたUITxtFieldを入れて、そのテキストフィールドにテキストとしてタイマカウンタを設定し、UIスクリプトからそれをフェッチしなければなりませんでした。誰かがより良いアプローチをしている場合は助言してください。

関連する問題