Articles of junit

! JUnit 3.8或更高版本预期

我的Android工作室项目有一个依赖于android框架的app模块,我创建了一个名为domain的新模块,它只包含纯java类和一些测试类。 在这个模块的build.gradle文件中,我添加了junit和mockito库用于测试目的,如下所示: apply plugin: ‘java’ sourceCompatibility = 1.7 targetCompatibility = 1.7 dependencies { testCompile ‘junit:junit:4.11’ testCompile ‘org.mockito:mockito-core:1.9.5’ compile project(‘:common’) compile project(‘:model’) //test dependencies } 但Android Studio给了我!!! JUnit version 3.8 or later expected 每当我尝试执行测试类时, !!! JUnit version 3.8 or later expected都会出现!!! JUnit version 3.8 or later expected错误消息。 此问题的所有建议解决方案是打开项目结构| 模块| 依赖关系,并将junit-4.7.jar向上移动,以便它在类路径中出现在Android 1.6 Platform之前。 事实上,我试图实现这个解决方案,但问题仍然存在。 有关如何解决此问题的任何想法?

如何在Android Studio 1.1中运行简单的JUnit4测试?

我有一个显示“Hello World”的Android项目。 它是从Android Studio的“空白活动”模板创建的。 然后我在我的应用程序包中添加/创建一个新的java类(与我的活动相同的包)。 我称之为Shape并添加一个简单的构造函数 public class Shape { public Shape(int i){ if (i==0){ throw new IllegalArgumentException(“Cant have 0”); } } } 大。 现在我有一个完全没有触及Android的课程,我想对它进行unit testing。 接下来我该怎么办? 这是我的问题停止的地方。 下面我将介绍我尝试过的内容。 请注意,我以前从未在Android或Java中测试过。 对不起“菜鸟”的错误。 在Shape.java中我转到“导航”>“测试” 按Enter键选择“创建新测试” 获取此popup窗口,然后选择JUNIT4。 然后我点击修复按钮修复未find的库 我得到这个popup窗口 我不确定要选择什么,所以我选择默认/突出显示。 我写了我的考试 package com.eghdk.getjunit4towork; import org.junit.Test; import static org.junit.Assert.*; public class ShapeTest { @Test(expected = IllegalArgumentException.class) public void testShapeWithInvalidArg() […]

AndroidManifest在androidTest目录中被忽略

我正在尝试使用以下目录结构(由Android Studio设置)进行测试: 我可以运行一些测试,甚至AllTests.java运行正常,而AndroidManifest.xml文件甚至没有。 问题是,对于我的一个新测试,我需要android.permission.INTERNET权限。 所以,我将以下内容添加到androidTest目录中的AndroidManifest.xml文件中: 不幸的是,这不起作用。 当我运行我的一个测试时,我仍然收到以下错误: E / RestAPIRequestTest:权限被拒绝(缺少INTERNET权限?) 我已经尝试在我的AndroidManifest.xml文件中将package设置为com.example.core.test (因为它是我在Settings-> Apps列表中显示的内容),但没有任何乐趣。 我认为它甚至不能识别AndroidManifest.xml文件,因为版本号也没有显示在测试应用程序的设置中。 如何为我的测试项目注入正确的权限?

Android:java.lang.SecurityException:注入另一个应用程序需要INJECT_EVENTS权限

您好,我是Android Junit测试新手: 我在MainActivityFunctionalTest.java文件中编写了一些测试代码 MainActivityFunctionalTest.java: package com.example.myfirstapp2.test; public class MainActivityFunctionalTest extends ActivityInstrumentationTestCase2{ private static final String TAG = “MainActivityFunctionalTest”; private Login activity; public MainActivityFunctionalTest() { super(Login.class); } @Override protected void setUp() throws Exception { Log.d(TAG,”Set-Up”); super.setUp(); setActivityInitialTouchMode(false); activity = getActivity(); } public void testStartSecondActivity() throws Exception { // add monitor to check for the second activity […]

无法find检测目标包:com.xyz

我为一个库项目编写了一个testcase类,我分别创建了这个测试用例项目。 当我尝试运行此测试项目时。控制台显示错误”Unable to find instrumentation target package: ” , 我也在谷歌搜索解决方案,在一些网站上他们检查AndroidManifestFile中的标签android:targetPackage属性。 我检查了清单,检测标签是否正确,它正确定位了libraryproject包。 任何人都可以帮忙,使我的testcase项目可以运行

Android RxJava 2 JUnit测试 – android.os.Looper中的getMainLooper没有模拟RuntimeException

我在尝试为使用observeOn(AndroidSchedulers.mainThread())的演示者运行JUnit测试时遇到RuntimeException。 由于它们是纯JUnit测试而不是Android检测测试,因此它们无法访问Android依赖项,导致我在执行测试时遇到以下错误: java.lang.ExceptionInInitializerError at io.reactivex.android.schedulers.AndroidSchedulers$1.call(AndroidSchedulers.java:35) at io.reactivex.android.schedulers.AndroidSchedulers$1.call(AndroidSchedulers.java:33) at io.reactivex.android.plugins.RxAndroidPlugins.callRequireNonNull(RxAndroidPlugins.java:70) at io.reactivex.android.plugins.RxAndroidPlugins.initMainThreadScheduler(RxAndroidPlugins.java:40) at io.reactivex.android.schedulers.AndroidSchedulers.(AndroidSchedulers.java:32) … Caused by: java.lang.RuntimeException: Method getMainLooper in android.os.Looper not mocked. See http://g.co/androidstudio/not-mocked for details. at android.os.Looper.getMainLooper(Looper.java) at io.reactivex.android.schedulers.AndroidSchedulers$MainHolder.(AndroidSchedulers.java:29) … java.lang.NoClassDefFoundError: Could not initialize class io.reactivex.android.schedulers.AndroidSchedulers at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) …

用gradle测试一个android项目的junit测试

我试图让测试(junit和robolectric)在Android项目中工作,但我完全陷入困境。 我的主要问题是我用gradlefind的所有测试都以某种方式拉入了java插件然后我得到了这个错误: The ‘java’ plugin has been applied, but it is not compatible with the Android plugins. 我目前看到的唯一出路是分成测试和应用项目 – 但我想避免这种情况。 任何示例/提示都将受到高度赞赏! 在官方文档中没有提到unit testing – 只有仪器测试 – 但我希望unit testing能够快速获得结果。

Android Studio无法解析org.junit

我在Android Studio 1.2.2中使用JUnit测试。 测试没有问题。 唯一令我困惑的是Android Studio无法解析实际的org.junit包。 显然它确实解决了它,否则测试不会运行。 但是导入和注释在Android Studio中标记为红色,如此处所示。 这是Android Studio中的错误吗? 我尝试重建应用程序并重新启动Android Studio但这不能解决问题。 import org.junit.Test; import static org.junit.Assert.*; // cannot resolve symbol ‘junit’ public class CanadaTest { @Test public void testCountryName() throws Exception { int x = 0; x++; } }

java.lang.NoClassDefFoundError:android和junit test

我看到我不是唯一一个遇到这个问题的人,但我找不到正确的答案。 我有一个我想测试的android项目。 我为我的项目的每个类创建一个junit测试类。 我的问题是当我运行我的测试时,我有以下错误: java.lang.NoClassDefFoundError: android/content/Context 这是我的class级考试: public class DevicesBDDTest extends TestCase { DevicesBDD bdd; /** * @throws java.lang.Exception */ protected static void setUpBeforeClass() throws Exception { } /** * @throws java.lang.Exception */ protected static void tearDownAfterClass() throws Exception { } protected void setUp() throws Exception { super.setUp(); Context ctx = mock(Context.class); final MaBaseSQLiteInterface mockMaBaseSQLite […]

如何使用Android Studio运行unit testing

我正在使用Jake的Androidunit testing插件进行gradle: https : //github.com/JakeWharton/gradle-android-test-plugin 我的build.gradle看起来像这样: dependencies { // analytics compile(‘com.crittercism:crittercism-android:3.0.11’) // retrofit compile(‘com.squareup.retrofit:retrofit:1.2.2’) compile(‘com.squareup.okhttp:okhttp:1.2.1’) // dagger compile(‘com.squareup.dagger:dagger:1.1.0’) compile(‘com.squareup.dagger:dagger-compiler:1.1.0’) // compatibility compile(‘android.compatibility:android-support:v4-r13’) compile(‘com.actionbarsherlock:actionbarsherlock:4.4.0@aar’) // Picasso compile(‘com.squareup.picasso:picasso:2.1.1’) // Otto compile(‘com.squareup:otto:1.3.4’) // Tests testCompile ‘junit:junit:4.10’ testCompile ‘org.robolectric:robolectric:2.2’ testCompile ‘org.powermock:powermock-api-mockito:1.5.1’ testCompile ‘org.easytesting:fest-assert-core:2.0M10’ } 不幸的是,我无法运行所有或特定的unit testing表单Android Studio。 我收到错误: Exception in thread “main” java.lang.NoClassDefFoundError: junit/textui/ResultPrinter at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:171) […]