2
- 私のユニットの間に実行されていないようです:静的初期化子は、静的なユーティリティクラスのメソッドをテストするJUnitテスト
@Test
public void createGenreString()
{
//Arrange
String expected1 = "Action, Adventure, Animation,
//Act
String actual1 = Utils.createGenreString(new int[]{28, 12, 16, 35});
//Assert
assertThat(actual1, is(equalTo(expected1)));
}
この静的メソッドは、の、静的なマップオブジェクト(MovieDbContract.GENRES)の種類にアクセスしています
public static final SparseArray<String> GENRES = new SparseArray<>();
static
{
GENRES.put(28, "Action");
GENRES.put(12, "Adventure");
GENRES.put(16, "Animation");
.
.
}
0:この静的マップ・オブジェクトは静的初期化子を介してデータで充填されるべき
public static String createGenreString(int[] genreIds)
{
StringBuilder sb = new StringBuilder();
int length = genreIds.length;
for (int i = 0; i < length && genreIds[i] != 0; i++)
{
if (i != 0) sb.append(", ");
String genre = MovieDbContract.GENRES.get(genreIds[i]);
sb.append(genre != null ? genre : "Unknown");
}
return sb.toString();
}
:それは整数キーを使用して文字列値を取得しています
問題は、テストが実行されるときにマップオブジェクトがヌルで、データで満たされないためテストが失敗するということです。プログラム自体は正常に動作し、データが含まれています。誰がなぜテスト中にこれは異なるアイデアですか?私はJUnit 4.12を使用していますが、これはアンドロイド環境で行われています
[MCVE]を投稿してください。 –
'Genres'変数がどこにどのように宣言され、割り当てられているかを知る必要があります。 – SamTebbs33
宣言を更新しました – Lemao1981