Running unit tests with Robolectric instead of starting up emulator every time
This commit is contained in:
		
							parent
							
								
									0762919f74
								
							
						
					
					
						commit
						5587abae8b
					
				
					 3 changed files with 29 additions and 10 deletions
				
			
		| 
						 | 
					@ -16,6 +16,11 @@ android {
 | 
				
			||||||
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
 | 
					            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    testOptions {
 | 
				
			||||||
 | 
					        unitTests {
 | 
				
			||||||
 | 
					            includeAndroidResources = true
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
dependencies {
 | 
					dependencies {
 | 
				
			||||||
| 
						 | 
					@ -24,10 +29,14 @@ dependencies {
 | 
				
			||||||
    implementation 'com.android.support:design:28.0.0'
 | 
					    implementation 'com.android.support:design:28.0.0'
 | 
				
			||||||
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
 | 
					    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
 | 
				
			||||||
    testImplementation 'junit:junit:4.12'
 | 
					    testImplementation 'junit:junit:4.12'
 | 
				
			||||||
 | 
					    testImplementation 'org.robolectric:robolectric:4.0-alpha-3-SNAPSHOT'
 | 
				
			||||||
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
 | 
					    androidTestImplementation 'com.android.support.test:runner:1.0.2'
 | 
				
			||||||
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
 | 
					    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
 | 
				
			||||||
    implementation 'com.jaredrummler:material-spinner:1.2.5'
 | 
					    implementation 'com.jaredrummler:material-spinner:1.2.5'
 | 
				
			||||||
    implementation 'com.android.support:design:28.0.0-alpha3'
 | 
					    implementation 'com.android.support:design:28.0.0-alpha3'
 | 
				
			||||||
    implementation 'com.rengwuxian.materialedittext:library:2.1.4'
 | 
					    implementation 'com.rengwuxian.materialedittext:library:2.1.4'
 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					repositories {
 | 
				
			||||||
 | 
					    maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -6,6 +6,13 @@ import android.database.sqlite.SQLiteOpenHelper;
 | 
				
			||||||
import android.database.Cursor;
 | 
					import android.database.Cursor;
 | 
				
			||||||
import android.content.ContentValues;
 | 
					import android.content.ContentValues;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * The class DBHelper allows the Android application to access and perform
 | 
				
			||||||
 | 
					 * CRUD operations on the tables of the SQLite database.
 | 
				
			||||||
 | 
					 * There is currently a table of all users' login information.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * To use, create an object of this class with the current activity as context.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class DBHelper extends SQLiteOpenHelper {
 | 
					public class DBHelper extends SQLiteOpenHelper {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,17 +3,20 @@ package com.uottawa.olympus.olympusservices;
 | 
				
			||||||
import android.content.Context;
 | 
					import android.content.Context;
 | 
				
			||||||
import android.database.DatabaseUtils;
 | 
					import android.database.DatabaseUtils;
 | 
				
			||||||
import android.database.sqlite.SQLiteDatabase;
 | 
					import android.database.sqlite.SQLiteDatabase;
 | 
				
			||||||
import android.support.test.InstrumentationRegistry;
 | 
					
 | 
				
			||||||
import android.support.test.runner.AndroidJUnit4;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.junit.Test;
 | 
					import org.junit.Test;
 | 
				
			||||||
import org.junit.runner.RunWith;
 | 
					import org.junit.runner.RunWith;
 | 
				
			||||||
 | 
					import org.robolectric.RobolectricTestRunner;
 | 
				
			||||||
 | 
					import org.robolectric.RuntimeEnvironment;
 | 
				
			||||||
 | 
					import org.robolectric.annotation.Config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import static org.junit.Assert.*;
 | 
					import static org.junit.Assert.*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@RunWith(AndroidJUnit4.class)
 | 
					@RunWith(RobolectricTestRunner.class)
 | 
				
			||||||
public class DBTest {
 | 
					@Config(packageName = "com.uottawa.olympus.olympusservices")
 | 
				
			||||||
    private DBHelper dbHelper = new DBHelper(InstrumentationRegistry.getTargetContext());
 | 
					public class DBUnitTest {
 | 
				
			||||||
 | 
					    private DBHelper dbHelper = new DBHelper(RuntimeEnvironment.application);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    public void testAddAndDeleteUser(){
 | 
					    public void testAddAndDeleteUser(){
 | 
				
			||||||
| 
						 | 
					@ -54,13 +57,13 @@ public class DBTest {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        deleted = dbHelper.deleteUser("admin");
 | 
					        deleted = dbHelper.deleteUser("admin");
 | 
				
			||||||
        assertEquals(true, deleted);
 | 
					        assertTrue(deleted);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        deleted = dbHelper.deleteUser("mgarzon");
 | 
					        deleted = dbHelper.deleteUser("mgarzon");
 | 
				
			||||||
        assertEquals(true, deleted);
 | 
					        assertTrue(deleted);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        deleted = dbHelper.deleteUser("jguzman");
 | 
					        deleted = dbHelper.deleteUser("jguzman");
 | 
				
			||||||
        assertEquals(true, deleted);
 | 
					        assertTrue(deleted);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -71,7 +74,7 @@ public class DBTest {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        added = dbHelper.addUser(new User("mgarzon", "soccer", "Miguel", "Garzon"));
 | 
					        added = dbHelper.addUser(new User("mgarzon", "soccer", "Miguel", "Garzon"));
 | 
				
			||||||
        assertTrue(added);
 | 
					        assertTrue(added);
 | 
				
			||||||
        added = dbHelper.addUser(new ServiceProvider("mgarzon", "soccer", "Miguel", "Garzon"));
 | 
					        added = dbHelper.addUser(new ServiceProvider("mgarzon", "seg2105", "Juan", "Guzman"));
 | 
				
			||||||
        assertTrue(!added);
 | 
					        assertTrue(!added);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        dbHelper.deleteUser("mgarzon");
 | 
					        dbHelper.deleteUser("mgarzon");
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue