Android Studio 3.0 Beta 5
robolectric:3.3.1
다음 글라이드 라이브러리를 사용하여 이미지 URL을로드하는 뷰 홀더가 있습니다. 내가 단위 테스트이 할 수있는 방법을 찾기 위해 노력하고 있어요 :단위 테스트 글라이드 : ImageView에 올바른 이미지가 있는지 확인하십시오.
public class MovieActorsViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.civActorPicture) CircleImageView actorPicture;
@BindView(R.id.tvName) TextView name;
@BindView(R.id.tvCharacter) TextView character;
private Context context;
public MovieActorsViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
context = itemView.getContext();
}
public void populateActor(Actor actor) {
Glide.with(context)
.load(actor.getPicturePath())
.placeholder(R.drawable.people_placeholder)
.into(actorPicture);
name.setText(actor.getName());
character.setText(actor.getCharacter());
}
}
이 내가 수행 한 단위 테스트,하지만 난 확실하지 않다 어떻게 단위 테스트 이미지보기를 할 수 있습니다. 글라이드 라이브러리를 모의하기 위해 Mockito를 사용하는 것이 효과가 있을지 모르겠습니다.
@RunWith(RobolectricTestRunner.class)
public class MovieActorsViewHolderTest {
private MovieActorsViewHolder movieActorsViewHolder;
@Before
public void setup() {
final Context context = ShadowApplication.getInstance().getApplicationContext();
final View view = LayoutInflater.from(context).inflate(R.layout.movie_actors_item, new LinearLayout(context));
movieActorsViewHolder = new MovieActorsViewHolder(view);
}
@Test
public void testShouldPopulateActorWithValidData() {
final Actor actor = getActor();
movieActorsViewHolder.populateActor(actor);
/* test that the image view */
final ShadowDrawable shadowDrawable = Shadows.shadowOf(movieActorsViewHolder.actorPicture.getDrawable());
final Drawable drawable = Drawable.createFromPath(actor.getPicturePath());
assertThat(drawable, is(shadowDrawable.getCreatedFromResId()));
assertThat(movieActorsViewHolder.name.getText(), is(actor.getName()));
assertThat(movieActorsViewHolder.character.getText(), is(actor.getCharacter()));
}
private Actor getActor() {
return new Actor(
"https://image.tmdb.org/t/p/w92/dRLSoufWtc16F5fliK4ECIVs56p.jpg",
"Robert Danny Junior",
"Iron Man");
}
}
출력 : 어떤 제안에 대한
Expected: is <[email protected]>
but: was <[email protected]>
Expected :is <[email protected]>
Actual :<[email protected]>
많은 감사합니다.
네트워크 또는 리소스에서 사진을로드합니까? –