Bir android uygulaması için bir birim testi yapmaya çalışıyorum ve res.string kaynaklarından bir dize almam gerekiyor. Test etmek istediğim sınıf bir POJO sınıfı. Uygulamayı iki dilde yapıyorum, bunun nedeni ile, kaynaktan bir dize almam gerekiyor. Sorun, içeriği veya faaliyeti alamam, mümkün mü? Enstrümantasyon testi ile bunu yapabileceğimi biliyorum, fakat enstrümantasyon testini yapmak için bazı fonksiyonları (beyaz kutu testi) test etmem gerekiyor (kara kutu testi). Bu Testten zorunda fonksiyonudur:Birim testi Android, getString kaynağından
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;
}
}
Ve bu test:
@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);
}
Ben 'Mon' koyarsanız deneyin context.getResources().getString(R.string.sInicialLunes))
yapmak ne zaman çökmesine yerine context.getResources().getString(R.string.sInicialLunes))
veya 'L' mükemmel çalışıyor, kaynak klasörüne erişmek için içeriği veya etkinliği almak mümkün mü?
Ben Mockito ile test ediyorum ve Kurulum fonksiyonudur:
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
mContext = Mockito.mock(Alerta.class);
Mockito.when(mContext.getApplicationContext()).thenReturn(mContext);
alertaPOJO = new AlertaPOJO();
}
Teşekkür
Teşekkür ederim @Sherlock, sanırım okudum doğru cevap oldu ama Android'de yeni başlayan biri olduğum için bir onay gerekiyordu. – Tachenko