2016-05-16 15 views
0

Wie Testmethode, die auf die App context zugreift, zum Beispiel, um eine Zeichenfolge von Ressourcen zu erhalten.Testmethoden einschließlich des Kontexts und usw.

Code:

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

Prüfregeln:

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); 
} 

Was mit dem Kontext zu tun?

Antwort

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

Siehe auch the Android testing documentation und the InstrumentationRegistry JavaDocs.

+0

Es stellt sich heraus, dass ich den Test auf dem Gerät zum Testen ausführen sollte? – whalemare

+1

@whalemare: Ja, ich ging davon aus, dass Sie Instrumentierungstests durchführen wollten. Es gibt keinen 'Context' direkt für Unit-Tests (d. H. Tests außerhalb von Android), obwohl es möglich ist, dass Robolectric oder ähnliche Mock-Frameworks Ihren Anforderungen entsprechen. – CommonsWare

+0

Ok. Danke für Ihre Hilfe!) – whalemare

Verwandte Themen