0
Ich versuche Unit-Test zu testen, wo ich Picasso zu den Ladebildern verwende. Um den Adapter zu testen muss ich das Picasso verspotten. Damit werden die eigentlichen Bilder nicht aus dem Netzwerk geladen.Unit Testing Activity/Adaper, die Picasso verwendet
Ich fand eine SO question. Aber es scheint ziemlich veraltet. Ich benutze Android-Test-Support-Bibliothek.
MyAdapter.java
public class MyAdapter extends ArrayAdapter<T> {
public PackageAdapter(Context context, ArrayList<T> data) {
super(context, 0, data);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Model model = getItem(position);
ViewHolder vh;
if (convertView == null) {
vh = new ViewHolder();
LayoutInflater inflater = LayoutInflater.from(getContext());
convertView = inflater.inflate(R.layout.item_list, parent, false);
vh.imageItem = (ImageView) convertView.findViewById(R.id.iv_item_image);
vh.textViewItem = (TextView) convertView.findViewById(R.id.tv_item_name);
convertView.setTag(vh);
} else {
vh = (ViewHolder) convertView.getTag();
}
vh.textViewItem.setText(model.getName());
Picasso.with(context)
.load(model.getImagePath())
.into(vh.imageItem);
return convertView;
}
public static class ViewHolder {
ImageView imageItem;
TextView textViewItem;
}
}
Also, muss ich Picasso Instanz in Adapter über Konstruktor injizieren? – vsvankhede
Ja, Sie sollten in diesem Fall. – pavle