07/09/2018, 15:29
Chuyển từ AndroidTestCase sang AndroidJUnit4
Trước đây: public class SomeClassTest extends AndroidTestCase { private SomeClass klass; @Override protected void setUp() throws Exception { super.setUp(); // This old way that we all get used to. final Context context = getContext(); final SharedPreferences preferences = ...
Trước đây:
public class SomeClassTest extends AndroidTestCase { private SomeClass klass; @Override protected void setUp() throws Exception { super.setUp(); // This old way that we all get used to. final Context context = getContext(); final SharedPreferences preferences = context.getSharedPreferences( SomeClassTest.class.getSimpleName(), Context.MODE_PRIVATE ); klass = new SomeClass(context, preferences); } public void testShouldBeTrue() { // I hate that prefix 'test' though! } }
Bây giờ:
@RunWith(AndroidJUnit4.class) public class SomeClassTest { private SomeClass klass; @Before public void setUp() { // InstrumentationRegistry will do the trick! // We can use this context to test implementations of SQLiteOpenHelper. final Context context = InstrumentationRegistry.getInstrumentation().getTargetContext(); // It's also easy to create mock SharedPreferences for testing. final SharedPreferences preferences = context.getSharedPreferences( SomeClassTest.class.getSimpleName(), Context.MODE_PRIVATE ); klass = new SomeClass(context, preferences); } @Test public void shouldBeTrue() { // Do something with klass and assert it here. } }