我正在尝试为Android应用程序进行单元测试,我需要从res.string资源中获取一个字符串。我想要测试的类是一个POJO类。由于我正在使用两种语言编写应用程序,因此需要从资源中获取一个字符串。问题是我无法获取上下文或活动,这可能吗?我知道可以通过Instrumentation测试来实现,但我需要在进行仪器测试(黑盒测试)之前测试一些函数(白盒测试)。
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'或'L',它可以完美运行,所以有可能获取上下文或活动以便访问资源文件夹吗?
我正在使用Mockito进行测试,setUp函数如下:
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
mContext = Mockito.mock(Alerta.class);
Mockito.when(mContext.getApplicationContext()).thenReturn(mContext);
alertaPOJO = new AlertaPOJO();
}
谢谢