Я пытаюсь создать тест на активность с JUnit и эспрессо.
Но я столкнулся с проблемой.моя активность в зависимости от предыдущей активности, которая должна была загружать пользовательские данные из базы данных.
Я храню пользовательские данные в закрытой переменной (чтобы предотвратить нежелательные изменения), и единственный способ применить к ней значение - это использовать метод loadFromDatabase
.
Но я не могу использовать этот метод во время тестирования, потому что у него есть прослушиватель обратного вызова (он отправляет запрос на сервер), и мне нужно загрузить эти данные немедленно, чтобы загрузить действие
public User {
private static User mCurrentUser = ...;
public static void loadFromDatabase() { ... }
}
public MainActivityTest {
public MainActivityTest() {
// load the data
User.loadFromDatabase({
// on complete callback
})
// load the activity
activity = new ActivityTestRule(MainActivity.class)
}
}
public MainActivity extends Activity {
public void onCreate() {
// needs the user data
User.mCurrentUser...
}
}
Как я могу решить эту проблему, не делая mCurrentUser
общедоступной?
Есть ли способ создания методов в обычных классах только для тестирования?
Спасибо.