2016-05-16 9 views
0

たとえば、リソースから文字列を取得するために、アプリケーションcontextにアクセスするメソッドをテストする方法。コンテキストなどを含むテストメソッド

コード:

public String getString(Context context) { 
    String string = context.getResources().getString(R.id.string); 
    return string; 
} 

テストコード:

MyClass myClass; 

Context context; // ??? 

@Before 
public void setUp(){ 
    myClass = new MyClass(); 
} 

@Test 
public void convertToMessage() throws Exception { 
    String myString = "My string"; 
    String gettedString = myClass.getString(context); 
    assertEquals(myString, gettedString); 
} 

コンテキストをどうしますか?

答えて

2
@Before 
public void setUp(){ 
    myClass = new MyClass(); 
    context = InstrumentationRegistry.getTargetContext(); 
} 

the Android testing documentationおよびthe InstrumentationRegistry JavaDocsも参照してください。

+0

テストのためにデバイス上でテストを実行する必要があることが判明しましたか? – whalemare

+1

@whalemare:はい、私はあなたが計測テストを行うことを考えていると仮定しました。ユニットテスト(つまり、Android以外のテスト)のために直接利用できる「コンテキスト」はありませんが、Robolectricまたは類似の模造フレームワークがあなたのニーズを満たす可能性があります。 – CommonsWare

+0

助けてくれてありがとう!) – whalemare

関連する問題