2017-03-07 1 views
3

私はフラグメントにメソッドをテストしたいが、この方法では、私はトーストを呼び出す:JUnitテストでトーストを無視する方法は?

Toast.makeText(getActivity(), getString(R.string.signs), Toast.LENGTH_SHORT).show(); 

今、私はJUnitのとPowermockitoとメソッドをテストしたいです。このため私はトーストを無視したい。私はこのようにそれを試してみました:トーストをあざけりとtoast.showをignor()

Toast toastMock = mock(Toast.class); 
doReturn(toastMock).when(Toast.makeText(any(Activity.class), anyString(), Toast.LENGTH_SHORT)); 
doNothing().when(toastMock).show(); 

しかし、私は新しいトーストのオブジェクトを作成せずにトーストを呼び出すので、私はいつも、のRuntimeExceptionを取得します。どうすればこの問題を回避できますか?

+0

完全なテストケースを追加できますか? PowerMockitoの設定も –

+0

あなたは静的メソッドをモックしようとしていますが、静的コールを静的でないクラスにラップするか、モックするか、ここで助けを見つけることができる静的メソッドをモックするかhttp://stackoverflow.com/questions/10583202/powermockito-mock-single-static-method-and-return-object – zsmb13

答えて

0

Toastを表示するメソッドで外部クラスを作成し、fragmentに挿入し、このクラスの動作を疑似します。 PowerMockitoを使用すると、静的メソッドである可能性があります。

注射方法は? DaggerまたはToothpickを使用してください。

関連する問題