Разве это не (элегантно работать с данными, поэтому вам не нужно беспокоиться о его восстановлении), для чего тестирование с фиктивными объектами ? Android поддерживает насмешку .
Я задаю вопрос, поскольку я никогда не издевался над Android.
По моему опыту и из этого сообщения в блоге , когда тесты Android превращаются в набор и запускаются InstrumentationTestRunner - ActivityInstrumentationTestCase2 является расширением ActivityTestCase , которое является расширением InstrumentationTestCase - они упорядочены в алфавитном порядке с использованием android.test.suitebuilder.TestGrouping.SORT_BY_FULLY_QUALIFIED_NAME
, так что вы можете просто восстановить свою БД с помощью метода, который является низким в алфавите из названий ваших тестов, например:
// underscore is low in the alphabet
public void test___________Restore() {
...
}
Примечание:
Вы должны обратить внимание на унаследованные тесты, так как они не будут выполняться в этом порядке. Решение состоит в том, чтобы переопределить все унаследованные тесты и просто вызвать super () из переопределения. Это снова будет выполнять все в алфавитном порядке.
* +1040 * Пример: * * тысяча сорок один
// Reusable class w only one time setup and finish.
// Abstract so it is not run by itself.
public abstract class Parent extends InstrumentationTestCase {
@LargeTest
public void test_001_Setup() { ... }
@LargeTest
public void test_____Finish() { ... }
}
/*-----------------------------------------------------------------------------*/
// These will run in order shown due to naming.
// Inherited tests would not run in order shown w/o the use of overrides & supers
public class Child extends Parent {
@LargeTest
public void test_001_Setup() { super.test_001_Setup(); }
@SmallTest
public void test_002_MainViewIsVisible() { ... }
...
@LargeTest
public void test_____Finish() { super.test_____Finish(); }
}