我想做一個Android應用程序的單元測試,我需要從res.string資源中獲取一個字符串。我想測試的類是POJO類。我正在用兩種語言做這個應用程序,由於這個原因,我需要從資源中獲取一個字符串。問題是我無法獲得背景或活動,是可能的?我知道使用Instrumentation測試我可以做到這一點,但是在做儀器測試(黑盒測試)之前,我需要測試一些功能(白盒測試)。 這是我要測試功能:單元測試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))
如果我把「星期一」,而不是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