I'm using org.assertj:assertj-core:3.6.2
to test my android project.
According offical ducoment, I should use java 8 with assertj 3.x.
Here is my test class, I'm trying to verify when the click performed the code can start expected activity.
import android.content.Intent;
import org.assertj.core.api.Assertions;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowActivity;
@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 21)
public class LoginActivityTest {
@Test
public void testBtnLogin(){
LoginActivity loginActivity = Robolectric.setupActivity(LoginActivity.class);
loginActivity.findViewById(R.id.btnLogin)
.performClick();
Intent expectedIntent = new Intent(loginActivity,MainActivity.class);
ShadowActivity shadowActivity = Shadows.shadowOf(loginActivity);
Intent actualIntent = shadowActivity.getNextStartedActivity();
Assertions.assertThat(actualIntent).isEqualTo(expectedIntent);
}
}
But when I run test, I got this error:
:app:compileDebugUnitTestJavaWithJavac (Thread[Daemon worker,5,main]) started.
:app:compileDebugUnitTestJavaWithJavac
file or directory '/home/workspace/android/AndroidLib/app/src/testDebug/java', not found
Executing task ':app:compileDebugUnitTestJavaWithJavac' (up-to-date check took 0.006 secs) due to:
Output file /home/workspace/android/AndroidLib/app/build/intermediates/classes/test/debug/com/cavalry/androidlib/sample/ui/activity/LoginActivityTest.class has been removed.
All input files are considered out-of-date for incremental task ':app:compileDebugUnitTestJavaWithJavac'.
Compiling with source level 1.7 and target level 1.7.
file or directory '/home/workspace/android/AndroidLib/app/src/testDebug/java', not found
Compiling with JDK Java compiler API.
/home/workspace/android/AndroidLib/app/src/test/java/com/cavalry/androidlib/sample/ui/activity/LoginActivityTest.java:43: error: cannot access Path
Assertions.assertThat(actualIntent).isEqualTo(expectedIntent);
^
class file for java.nio.file.Path not found
1 error
:app:compileDebugUnitTestJavaWithJavac FAILED
:app:compileDebugUnitTestJavaWithJavac (Thread[Daemon worker,5,main]) completed. Took 0.556 secs.
I searched on google and found it might cause by the wrong version of java( I'm really really not sure about that).
Here is some information about my java config:
$ java -version
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)
$ javac -version
javac 1.8.0_112
$ update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 auto mode
1 /home/java/jdk1.8.0_112/bin/java 300 manual mode
2 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071 manual mode
And in project structure, I alse set JDK to jdk1.8.0_112
If it was caused by the version of java, what should I do? If not, then what should I do ?
Advertisements. As name suggests Path is the particular location of an entity such as file or a directory in a file system so that one can search and access it at that particular location.
Advertisements. Java NIO package provide one more utility API named as Files which is basically used for manipulating files and directories using its static methods which mostly works on Path object.
Java NIO Files class contains static methods that is used for manipulating files and directories and those methods mostly works on Path object.
ejohansson is right, it might not be super visible but org.assertj.core.api.Java6Assertions
is mentioned in http://joel-costigliola.github.io/assertj/assertj-core.html, I'll try to make it clearer in the future (https://github.com/joel-costigliola/assertj/issues/63).
Documentation has been updated, hopefully it will be easier for android developers to find the correct assertions entry point: http://joel-costigliola.github.io/assertj/assertj-core.html#android
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With