Skip to content

Instantly share code, notes, and snippets.

@sys1yagi
Last active December 27, 2015 14:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sys1yagi/7337915 to your computer and use it in GitHub Desktop.
Save sys1yagi/7337915 to your computer and use it in GitHub Desktop.
Mockitoェ・・・
package jp.mydns.sys1yagi.android.mockitosample;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
public class PreviewActivity extends FragmentActivity {
private final static String TAG = PreviewActivity.class.getSimpleName();
public static final String EXTRA_URL = "url";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_preview);
}
@Override
protected void onResume() {
super.onResume();
String url = getIntent().getStringExtra(EXTRA_URL);
startLoading(url);
}
public void startLoading(final String url) {
new Thread() {
@Override
public void run() {
final Bitmap bitmap = loadNetwork(url);
runOnUiThread(new Runnable() {
@Override
public void run() {
findViewById(R.id.text).setVisibility(View.GONE);
ImageView imageView = (ImageView) findViewById(R.id.image);
imageView.setVisibility(View.VISIBLE);
imageView.setImageBitmap(bitmap);
}
});
}
}.start();
}
public Bitmap loadNetwork(String url) {
try {
return BitmapFactory.decodeStream(new URL(url).openStream());
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
package jp.mydns.sys1yagi.android.mockitosample;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.test.ActivityUnitTestCase;
import android.util.Log;
public class PreviewActivityTest extends ActivityUnitTestCase<PreviewActivity> {
private final static String TAG = PreviewActivityTest.class.getSimpleName();
public PreviewActivityTest() {
super(PreviewActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
System.setProperty("dexmaker.dexcache", getInstrumentation()
.getTargetContext().getCacheDir().getPath());
}
public void testPreviewActivity() {
Intent intent = new Intent();
intent.putExtra(PreviewActivity.EXTRA_URL, "test");
PreviewActivity target = startActivity(intent, null, null);
target = spy(target);
doAnswer(new Answer<Bitmap>() {
@Override
public Bitmap answer(InvocationOnMock invocation) throws Throwable {
Log.d(TAG, "answer");
assertEquals("test", invocation.getArguments()[0]);
return BitmapFactory.decodeResource(getInstrumentation().getContext()
.getResources(), R.drawable.ic_launcher);
}
}).when(target).loadNetwork(anyString());
//getInstrumentation().callActivityOnStart(target); これICSだと死ぬ
getInstrumentation().callActivityOnResume(target);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment