2016-04-27 12 views
0

私はユニットのテストをしています。私はどこにピカソをロードイメージに使用していますか? アダプターをユニットテストするには、ピカソを擬似する必要があります。そのため、ネットワークからの実際のイメージはロードされません。ユニットテストアクティビティ/ピカソを使用するアダプター

私は1つを見つけました。SO question。しかし、それは時代遅れのようです。私はアンドロイドテストのサポートライブラリを使用しています。

簡単であるべき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; 
    } 
} 

答えて

1

、ちょうど例えば、Mockitoを使用します。

@Mock 
Picasso picasso; 

@Before 
public void setup() { 
    MockitoAnnotations.initMocks(this); 
} 

をそして、それはそれでなければなりません。

+0

したがって、コンストラクタ経由でPicassoインスタンスをアダプタに挿入する必要がありますか? – vsvankhede

+0

はい、この場合はそうすべきです。 – pavle

関連する問題