2016-05-31 1 views
1

こんにちは私は、ビルドバージョンが23以上でビルドバージョンが常に1を返すBuild.VERSION.SDK_INTを呼び出すと、コードブロックを実行するユニットテストを実行しようとしていますか?ここRobolectric単体テストbuild.osのバージョンが正しく返されませんか?

は、ユニットテストコードです:

@Config(emulateSdk = 18) 
public class Test { 

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 
     //test some block of code 

    } 

} 
+0

私はあなたが何をしようとして得ることはありませんか? –

+0

私はAndroidのビルドバージョンをチェックするコードのブロックの中に入るユニットテストを実行しようとしています。動いていない。それは私の設定にもかかわらず、私の代わりにint値を返します。コンフィグレーション注釈内のクラスの先頭にAndroidのビルドバージョンを指定します – jonney

+0

Robolectricのどのバージョンを使用しますか? 'emulateSdk'は2.x用であり、3.xはすでにリリースされているからです。 –

答えて

0

ここでの説明(https://github.com/robolectric/robolectric/issues/277)から、あなたはJVM上で実行され、RobolectricがエミュレートされたSDKに応じてこの定数を変更していない理由は、おそらくです。実際には奇妙です。

しかし、どうやら、そのスレッドでも、それをテストする方法を回避されています

ReflectionHelpers.setStaticField(Build.VERSION.class, "SDK_INT", 18); 
関連する問題