Android Studio 3.0 Beta 5
robolectric:3.3.1
Tôi có trình giữ chế độ xem sau tải url hình ảnh bằng thư viện trượt. Tôi cố gắng để tìm thấy một cách để đơn vị kiểm tra này:Kiểm tra đơn vị Trượt: đảm bảo ImageView có hình ảnh chính xác
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());
}
}
Đây là bài kiểm tra đơn vị tôi đã làm, nhưng tôi không chắc chắn như thế nào tôi có thể kiểm tra đơn vị điểm ảnh. Tôi không chắc việc sử dụng Mockito để giả lập thư viện Glide có hiệu quả không?
@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");
}
}
Output:
Expected: is <[email protected]>
but: was <[email protected]>
Expected :is <[email protected]>
Actual :<[email protected]>
Rất cám ơn cho bất cứ đề nghị.
Ứng dụng có tải hình ảnh từ mạng hoặc từ tài nguyên không? –