0

XCTest ファイルから、Web サービス呼び出しを呼び出して、「self.waitForExpectationsWithTimeout」API を使用して待機ブロックを配置し、サービス応答を取得しました。

このサービス応答で実行するテスト メソッドはほとんどありません。この応答をグローバル変数に保存し、他のテスト関数からアクセスすると、この変数は nil になります。ここで何をする必要がありますか?関数のパラメータとして渡すことはできますか?

let serviceResp :NSDictionary!

func test_One() {
        //let expectation: XCTestExpectation = self.expectationWithDescription("HTTP")

        datamanager.fetchData() //Web service

        self.waitForExpectationsWithTimeout(5, handler: { (error: NSError!) -> Void in

//In 5 seconds, I will get response from service and will be stored in datamanager.response. 

    self.serviceResp = datamanager.response
        })
    }


    func test_Two() {
       //self.serviceResp is coming as nil even after assigning a value to it. 
    }

ありがとう

4

1 に答える 1

3

この方法では、XCTest メソッド間で情報を渡すことはできません。Testing with Xcode Docs (Emphasis mine)から以下を参照してください。

クラスごとに、クラスのセットアップ メソッドを実行してテストを開始します。テスト メソッドごとに、クラスの新しいインスタンスが割り当てられ、そのインスタンス セットアップ メソッドが実行されます。その後、テスト メソッドを実行し、その後インスタンスのティアダウン メソッドを実行します。このシーケンスは、クラス内のすべてのテスト メソッドに対して繰り返されます。クラスの最後のテスト メソッドのティアダウンが実行された後、Xcode はクラスのティアダウン メソッドを実行し、次のクラスに進みます。このシーケンスは、すべてのテスト クラスのすべてのテスト メソッドが実行されるまで繰り返されます。

すべてのテストを実行する必要がある情報がある場合は、それを setup メソッドに入れることを検討してください。

于 2015-07-30T20:07:11.013 に答える