Fix unit tests with Robolectric 4

This commit is contained in:
Sylvia van Os 2019-12-28 21:07:47 +01:00
parent b9d158583b
commit d5ba632bb3
10 changed files with 62 additions and 64 deletions

View File

@ -53,7 +53,7 @@ dependencies {
compile 'com.github.apl-devs:appintro:v4.2.0'
compile "com.vanniktech:vntnumberpickerpreference:1.0.0"
testCompile 'junit:junit:4.12'
testCompile "org.robolectric:robolectric:3.3.2"
testCompile "org.robolectric:robolectric:4.0.2"
}
task findbugs(type: FindBugs, dependsOn: 'assembleDebug') {
@ -73,4 +73,4 @@ task findbugs(type: FindBugs, dependsOn: 'assembleDebug') {
xml.enabled = false
html.enabled = true
}
}
}

View File

@ -18,7 +18,7 @@ import static org.junit.Assert.assertEquals;
import static org.robolectric.Shadows.shadowOf;
@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 23)
@Config(sdk = 23)
public class BarcodeSelectorActivityTest {
@Test
public void emptyStateTest()

View File

@ -21,7 +21,7 @@ import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 23)
@Config(sdk = 23)
public class DatabaseTest
{
private DBHelper db;

View File

@ -1,33 +1,32 @@
package protect.card_locker;
import static org.junit.Assert.assertEquals;
import static org.robolectric.Shadows.shadowOf;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.net.Uri;
import android.view.View;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.res.builder.RobolectricPackageManager;
import static org.robolectric.Shadows.shadowOf;
import static org.junit.Assert.assertEquals;
import org.robolectric.shadows.ShadowPackageManager;
@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 23)
@Config(sdk = 23)
public class ImportExportActivityTest
{
private void registerIntentHandler(String handler)
{
// Add something that will 'handle' the given intent type
RobolectricPackageManager packageManager = shadowOf(RuntimeEnvironment.application.getPackageManager());
PackageManager packageManager = RuntimeEnvironment.application.getPackageManager();
ResolveInfo info = new ResolveInfo();
info.isDefault = true;
@ -47,7 +46,7 @@ public class ImportExportActivityTest
intent.setType("*/*");
}
packageManager.addResolveInfoForIntent(intent, info);
shadowOf(packageManager).addResolveInfoForIntent(intent, info);
}
private void checkVisibility(Activity activity, int state, int divider, int title, int message, int button)

View File

@ -32,7 +32,7 @@ import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 23)
@Config(sdk = 23)
public class ImportExportTest
{
private Activity activity;

View File

@ -16,7 +16,7 @@ import static org.junit.Assert.assertTrue;
import static protect.card_locker.DBHelper.LoyaltyCardDbIds;
@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 23)
@Config(sdk = 23)
public class ImportURITest {
private ImportURIHelper importURIHelper;
private DBHelper db;

View File

@ -20,7 +20,7 @@ import org.robolectric.annotation.Config;
import static org.junit.Assert.assertEquals;
@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 23)
@Config(sdk = 23)
public class LoyaltyCardCursorAdapterTest
{
private Activity activity;

View File

@ -1,48 +1,46 @@
package protect.card_locker;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.ResolveInfo;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.net.Uri;
import android.os.Bundle;
import android.preference.PreferenceManager;
import androidx.core.widget.TextViewCompat;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.client.android.Intents;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.res.builder.RobolectricPackageManager;
import org.robolectric.shadows.ShadowActivity;
import org.robolectric.shadows.ShadowLog;
import org.robolectric.android.controller.ActivityController;
import java.io.IOException;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.robolectric.Shadows.shadowOf;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.net.Uri;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import androidx.core.widget.TextViewCompat;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.client.android.Intents;
import java.io.IOException;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.android.controller.ActivityController;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowPackageManager;
import org.robolectric.shadows.ShadowActivity;
import org.robolectric.shadows.ShadowLog;
@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 23)
@Config(sdk = 23)
public class LoyaltyCardViewActivityTest
{
private final String BARCODE_DATA = "428311627547";
@ -72,7 +70,7 @@ public class LoyaltyCardViewActivityTest
private void registerMediaStoreIntentHandler()
{
// Add something that will 'handle' the media capture intent
RobolectricPackageManager packageManager = shadowOf(RuntimeEnvironment.application.getPackageManager());
PackageManager packageManager = RuntimeEnvironment.application.getPackageManager();
ResolveInfo info = new ResolveInfo();
info.isDefault = true;
@ -85,7 +83,7 @@ public class LoyaltyCardViewActivityTest
Intent intent = new Intent(Intents.Scan.ACTION);
packageManager.addResolveInfoForIntent(intent, info);
shadowOf(packageManager).addResolveInfoForIntent(intent, info);
}
/**
@ -228,7 +226,7 @@ public class LoyaltyCardViewActivityTest
activityController.resume();
Activity activity = (Activity)activityController.get();
ShadowActivity shadowActivity = shadowOf(activity);
DBHelper db = new DBHelper(activity);
assertEquals(0, db.getLoyaltyCardCount());
@ -236,15 +234,15 @@ public class LoyaltyCardViewActivityTest
final EditText noteField = activity.findViewById(R.id.noteEdit);
final TextView cardIdField = activity.findViewById(R.id.cardIdView);
shadowActivity.clickMenuItem(R.id.action_save);
shadowOf(activity).clickMenuItem(R.id.action_save);
assertEquals(0, db.getLoyaltyCardCount());
storeField.setText("store");
shadowActivity.clickMenuItem(R.id.action_save);
shadowOf(activity).clickMenuItem(R.id.action_save);
assertEquals(0, db.getLoyaltyCardCount());
noteField.setText("note");
shadowActivity.clickMenuItem(R.id.action_save);
shadowOf(activity).clickMenuItem(R.id.action_save);
assertEquals(0, db.getLoyaltyCardCount());
}
@ -348,7 +346,7 @@ public class LoyaltyCardViewActivityTest
intent.putExtras(bundle);
return Robolectric.buildActivity(clazz).withIntent(intent).create();
return Robolectric.buildActivity(clazz, intent).create();
}
@Test
@ -629,7 +627,7 @@ public class LoyaltyCardViewActivityTest
Intent intent = new Intent();
intent.setData(importUri);
ActivityController activityController = Robolectric.buildActivity(LoyaltyCardEditActivity.class).withIntent(intent).create();
ActivityController activityController = Robolectric.buildActivity(LoyaltyCardEditActivity.class, intent).create();
activityController.start();
activityController.visible();
@ -638,7 +636,7 @@ public class LoyaltyCardViewActivityTest
Activity activity = (Activity)activityController.get();
checkAllFields(activity, ViewMode.ADD_CARD, "Example Store", "", "123456", "AZTEC");
assertEquals(activity.findViewById(R.id.headingColorSample).getBackground(), new ColorDrawable(-416706));
assertEquals(activity.findViewById(R.id.headingStoreTextColorSample).getBackground(), new ColorDrawable(-1));
assertEquals(-416706, ((ColorDrawable) activity.findViewById(R.id.headingColorSample).getBackground()).getColor());
assertEquals(-1, ((ColorDrawable) activity.findViewById(R.id.headingStoreTextColorSample).getBackground()).getColor());
}
}

View File

@ -32,7 +32,7 @@ import static org.junit.Assert.assertTrue;
import static org.robolectric.Shadows.shadowOf;
@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 23)
@Config(sdk = 23)
public class MainActivityTest
{
private SharedPreferences prefs;

View File

@ -23,3 +23,4 @@
android.enableAapt2=false
android.enableJetifier=true
android.useAndroidX=true
android.enableUnitTestBinaryResources=true