我正在org.assertj:assertj-core:3.6.2
测试我的android项目.根据官方讨论,我应该使用带有assertj 3.x的java 8.
这是我的测试类,我正在尝试验证何时执行单击代码可以启动预期的活动.
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); } }
但是当我运行测试时,我收到了这个错误:
: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.
我在谷歌搜索,发现它可能是由错误的java版本引起的(我真的不太确定).
以下是有关我的java配置的一些信息:
$ 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
在项目结构中,我将JDK设置为jdk1.8.0_112
如果它是由java版本引起的,我该怎么办?如果没有,那我该怎么办?