2016-09-26 8 views
0

私はRobolectricとMockitoを初めて使っています。 単純な単体テストを作成しようとしましたが、 my Peferencesクラスの静的最終値がnullであり、解決方法を見つけることができません。RobolectricとMockinto

+1

コードを共有してください。 ** Mockito **はスタティックとファイナルをモックできないことに注意してください。 –

+0

こんにちは、 このクラスhttp://pastebin.com/EYCycQbHIで**バナーのダウンロード**メソッドをテストしたいと思います。これは私の**テスト** http://pastebin.com/XYDpSBAWであり、このクラスから静的最終URL http://pastebin.com/bEcgRPjXを取得することはできません。 MockitoTestRunnerを使用したとき、JsonObject.toString()がnullを返したため、私はRoboletricTestRunnerに切り替えました。とにかく、アンドロイドのユニットテスティングについて非常に混乱しています。 私のプロジェクトではgradleを使っていますが、今はユニットテストのためにMockitoやRoboletctricを使ったり、両方を一緒に使ったりしていると非常に混乱しています。 – user3057944

+0

こんにちは、私は間違っていた、IndexPreferences.ADVERTICUM_ADVERTはnullではありません。私はこの変数をOkHttpRequestの引数として渡します。リクエストを書き出すときには、次のようになります。 リクエスト{メソッド= POST、url = null、tag = null} 変数を書き出すときに、この出力が得られます。 url:http://forrest.adverticum.net/ia/ 私は、reqeustのtoString()が嘲笑され、urlのnullを返すと思います。 – user3057944

答えて

1

はい、以下のようなクラスレベルの変数をスタブすることができます。

例:Powermockitoを使用してプライベート静的フィールドをモックする

Class Abc{ 
    private static final variableName = null; 
    -----; 
     ----; 
    rest of the code; 
    } 

--Steps。

1)フィールドフィールド= PowerMockito.field(Abc.class、 "variableName");

2)field.set(Abc.class、variableValue);

PS- @PrepareforTest(Abc.class)を使用していることを確認してください。

希望します。

+0

ありがとう、 私の静的な最終変数はOKですが、この問題があります 私はこのクラスを持っています:http:// pastebin .com/7Zx2zJYM と私はユニットテストでそれをinstatiateする方法を見つけることができません、共有環境設定は常にnullです。 – user3057944

関連する問題