2017-06-05 8 views
0

メソッドをテストしたいが、そのメソッド内の特定の部分のみをモックするコードがある。例えば、doNetworkWorkに電話して、呼び出しの動作:mRestPR.callNetwork(restCall)そのコールの前にいくつかの問題がある場合は、そのコールを成功/失敗させます。特定のコード行のみをメソッド全体に詰め込む

@Test 
    public void testMethod() { 
     Services sr = new Services(); 
     sr.doNetworkWork(new CallackService() { 
       @Override 
       public void onComplete(String response){ 
       //do some work 
    }}); 
    } 

Services.java

public void doNetworkWork (CallackService callback) { 

    RestCall restCall = new RestCall (RestMethodType.POST, uri, ADD_77, new 
    RestCall.RestCallListener() { 
      @Override 
      public void onComplete(Response response) { 
       if (callback != null) { 
        callback.onComplete(response.getMessage()); 
       } 
      } 
     }); 

      // some work 
      // mRestPR – private member 
      mRestPR.callNetwork(restCall); 
    } 
+0

「mRestPR」と「callNetwork」をモックしたいと思うようです。 –

+1

thats、何かの理由で 'mRestPR'メソッドの中の他の呼び出しの1つに失敗したときに私が偽装しようとしているときには、 – RonTr

+0

あなたはなぜ誰かを助けるのに十分なコードを表示していません。どのようにあなたのモックをセットアップし、あなたはテストしているオブジェクトにどのように注入するのですか? –

答えて

0

私はジレンマにいるときに多くの時間が、それは設計上の欠陥だことがわかります。この場合、doNetworkNowメソッドはおそらく別のオブジェクトに属しているため、通常どおりにモックできます。

あなたが良い相談をするのに十分なコードを提供していないため、私は確信できません。

関連する問題