Я пытаюсь выполнить единичный тест для приложения для Android и мне нужно получить строку из ресурсов res.string. Класс, который я хочу протестировать, является классом POJO. Я делаю приложение на двух языках, из-за этого мне нужно получить строку из ресурса. Проблема в том, что я не могу получить контекст или активность, возможно? Я знаю, что с помощью Instrumentation test я могу это сделать, но мне нужно проверить некоторые функции (тест белого ящика), прежде чем выполнять контрольно-измерительный тест (тест черного ящика). Это функция, которую я должен тест:Unit test Android, getString из ресурса
public void setDiaByText(String textView) {
getll_diaSeleccionado().clear();
if (textView.contains(context.getResources().getString(R.string.sInicialLunes))) {
getll_diaSeleccionado().add(0);
getIsSelectedArray()[0] = true;
getI_idiaSeleccionado()[0] =1;
} else
{
getIsSelectedArray()[0] = false;
getI_idiaSeleccionado()[0] =0;
}
}
И это испытание:
@Test
public void setDiaByTextView() {
String texto = "L,M,X,J,V,S,D";
alertaPOJO.setDiaByText(texto);
assertEquals(alertaPOJO.getIsSelectedArray()[0], true);
assertEquals(alertaPOJO.getI_idiaSeleccionado()[0], 1);
}
Это сбою при попытке сделать context.getResources().getString(R.string.sInicialLunes))
Если я ставлю «Mon» вместо context.getResources().getString(R.string.sInicialLunes))
или «L» он отлично работает, возможно ли получить контекст или активность для доступа к папке с ресурсами?
Я тестирую с Mockito и функция установки является:
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
mContext = Mockito.mock(Alerta.class);
Mockito.when(mContext.getApplicationContext()).thenReturn(mContext);
alertaPOJO = new AlertaPOJO();
}
Благодарности
Спасибо @Sherlock, я думаю, что это был правильный ответ, поскольку я прочитал, но мне нужно было одно подтверждение из-за того, что я новичок в Android. – Tachenko