#android #junit4
#Android #junit4
Вопрос:
Я пытаюсь протестировать метод, который находится в статическом контексте в моем классе, и я хочу протестировать его в классе Junit, но я получил исключение нулевого указателя.
Мой класс приложения :
public class App extends MultiDexApplication {
private static Context mContext;
@Override
public void onCreate() {
super.onCreate();
mContext = this;
}
public static Context getContext() {
return mContext;
}
}
Мой метод :
public class ColleagueChoice {
static ColleagueApiService apiService = DI.getColleagueApiService();
static List<Colleague> colleagueList = apiService.getColleagues();
static String isEatingAt = App.getContext().getResources().getString(R.string.is_eating_at);
static String isJoining = App.getContext().getResources().getString(R.string.is_joining);
static String notDecided = App.getContext().getString(R.string.has_not_decided_yet);
public static List<Colleague> setScarlettAndHughChoice() {
Colleague scarlett = colleagueList.get(0);
Colleague hugh = colleagueList.get(1);
scarlett.setColleagueIsJoining(isJoining);
hugh.setColleagueIsJoining(isJoining);
List<Colleague> colleagueChoiceList = new ArrayList<>();
colleagueChoiceList.add(scarlett);
colleagueChoiceList.add(hugh);
return colleagueChoiceList;
}
Итак, я получаю эту ошибку в строке :
static String isEatingAt = App.getContext().getResources().getString(R.string.is_eating_at);
ВВЕРХ!
Ответ №1:
Просто удалите App
класс, потому что это не очень хорошо для размещения getString
в логическом коде, таком как services. Я просто добавляю перечисление своему коллеге по модели, а затем использую: holder.itemView.getContext().getString()
в своем адаптере с условием переключения.