私は自分のシングルトンOcRequestQueue.java
クラスをテストします。このクラスは、アプリの存続期間中、Volley の永続的なものにしたいと考えていますRequestQueue
。context
問題は、別のプレゼンテーション層とデータ層を実装したいので、クラスの範囲を超えたアプリケーションが必要OcRequestQueue.java
であり、2 番目の層にあることです。プレゼンテーション層はまだ実装されていないので、自分が行ったことに対して単体テストを実行したいので、context
fromを取得したかったのですInstrumentationTestCase
が、取得できるのは だけです!! JUnit version 3.8 or later expected
。拡張しないクラスで単体テストを実行するにはどうすればよいActivity
ですか?
com.data.OcRequestQueue.java
package com.data;
import android.content.Context;
import com.android.volley.Cache;
import com.android.volley.Network;
import com.android.volley.RequestQueue;
import com.android.volley.toolbox.BasicNetwork;
import com.android.volley.toolbox.DiskBasedCache;
import com.android.volley.toolbox.HurlStack;
/**
* Created by mateusz on 03.01.15.
*/
public class OcRequestQueue {
static RequestQueue requestQueue;
static Context mContext;
static Cache cache;
static Network network;
private static OcRequestQueue ourInstance = new OcRequestQueue();
public static OcRequestQueue getInstance(Context context) {
if (ourInstance == null) {
mContext = context;
requestQueue = getRequestQueue(mContext);
}
return ourInstance;
}
private static RequestQueue getRequestQueue(Context context) {
cache = new DiskBasedCache(context.getCacheDir(), 1024 * 1024);
network = new BasicNetwork(new HurlStack());
return new RequestQueue(cache,network);
}
public OcRequestQueue() {
}
}
com.data.test.OcRequestQueueTest.java
package com.data.test;
import android.content.Context;
import android.test.ActivityInstrumentationTestCase2;
import android.test.AndroidTestCase;
import android.test.InstrumentationTestCase;
import com.data.OcRequestQueue;
public class OcRequestQueueTest extends InstrumentationTestCase {
Context context;
@Override
public void setUp() throws Exception {
context = getInstrumentation().getContext();
}
public void testGetInstance() throws Exception {
assertEquals(new OcRequestQueue(), OcRequestQueue.getInstance(context));
}
}
bulid.gardle
apply plugin: 'com.android.library'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
minSdkVersion 15
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
repositories {
mavenCentral()
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile 'junit:junit:4.+'
compile 'com.google.inject:guice:4.0-beta5'
def domainLayer = project(':domain')
//project dependencies
compile domainLayer
}