私はアンドロイドアプリの単体テストをしようとしています。res.stringリソースから文字列を取得する必要があります。私がテストしたいクラスはPOJOクラスです。私は2つの言語でアプリをやっています。そのため、リソースから文字列を取得する必要があります。問題は、私が文脈や活動を得ることができないことです。それは可能ですか?インストルメンテーションテストではできることは分かっていますが、インストルメンテーションテスト(ブラックボックステスト)を行う前にいくつかの機能(ホワイトボックステスト)をテストする必要があります。 これは私がテストを持っている機能である:ユニットテスト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とセットアップ機能をテストしていがある:あなたがJVMのユニットテストを使用している間、あなたは本当のアンドロイドコンテキストを持っていない
@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の初心者のために1つの確認が必要でした。 – Tachenko