如何在Android Studio 1.1中运行简单的JUnit4testing?

我有一个显示“Hello World”的Android项目。 它是从Android Studio的“空白活动”模板创build的。

然后,我在我的应用程序包(与我的活动相同的包)中添加/创build一个新的Java类。 我称之为形状,并添加一个简单的构造函数

public class Shape { public Shape(int i){ if (i==0){ throw new IllegalArgumentException("Cant have 0"); } } } 

大。 现在我有一个并没有触及Android的类,我想unit testing它。 接下来我应该做什么?

这是我的问题停止的地方。 下面我会通过我所尝试的。

请注意,我真的从来没有在Android或Java中testing过。 请原谅我的“菜鸟”的错误。

  1. 而在Shape.java我去“导航”>“testing”
  2. 点击回车select“创build新的testing”
  3. 得到这个popup框,然后selectJUNIT4。

在这里输入图像说明

  1. 然后我点击修复button来修复找不到的库
  2. 我得到这个popup

在这里输入图像说明

  1. 我不太确定select什么,所以我select默认/突出显示。
  2. 我写我的testing

     package com.eghdk.getjunit4towork; import org.junit.Test; import static org.junit.Assert.*; public class ShapeTest { @Test(expected = IllegalArgumentException.class) public void testShapeWithInvalidArg() { new Shape(0); } } 
  3. 在这一点上,我真的不知道如何运行我的testing,但尝试这样做: 在这里输入图像说明

  4. 运行时出现这些错误

    错误:(3,17)Gradle:错误:软件包org.junit不存在
    错误:(5,24)Gradle:错误:包org.junit不存在
    错误:(8,6)Gradle:错误:找不到符号类Test

Solutions Collecting From Web of "如何在Android Studio 1.1中运行简单的JUnit4testing?"

自Android Studio 1.1以来,有(实验) unit testing支持 。 来自该页面的几个引号:

你将不得不在你的android模块的build.gradle文件中指定你的testing依赖项。 例如:

 dependencies { testCompile 'junit:junit:4.12' testCompile "org.mockito:mockito-core:1.9.5" } 

要在AS中使用unit testing支持,您必须执行以下步骤:

  1. 更新build.gradle以使用android gradle插件1.1.0-rc1或更高版本(手动在build.gradle文件中或在文件>项目结构中的UI中)

  2. 将必要的testing依赖项添加到app / build.gradle(请参阅上文)。

  3. 在设置> Gradle>实验中启用unit testingfunction。

  4. 同步您的项目。

  5. 打开“构build变体”工具窗口(在左侧),并将testing工件更改为“unit testing”。

  6. 为您的testing源代码创build一个目录,例如src / test / java。 您可以从命令行或使用“项目”工具窗口中的“项目”视图执行此操作。 此时,新目录应该以绿色突出显示。 注意:testing源目录的名称是由gradle插件根据约定来确定的。

  7. 创build你的testing。 你可以打开一个类,右键点击它的名字,然后select“转到>testing”。 添加一些testing用例。
  8. 右键单击您的新testing类或方法,然后select“运行…”。
  9. (可选)您可以直接使用Gradle减less编译时间。 要做到这一点,转到运行菜单,然后select“编辑configuration”。 在那里,find默认的JUnit模板,在启动之前删除“Make”步骤,并添加一个“Gradle aware make”步骤(将任务名称留空)。

知道有两种testingtypes是重要的: androidTest和普通test

  • androidTest主要用于在仿真器或设备上运行的testing,如仪器testing。 从命令行使用./gradlew connectedCheck来运行这些。
  • test是针对你不想在设备上运行的testing,比如你写的unit testing。 您运行./gradlew test来运行这些testing。

正如引用中所述,通过更改testing工件在Android Studio中切换androidTesttest

当然,最好不要在设备或仿真器上运行testing,因为这会加速testing过程。 借助新的实验unit testing支持,您可以在不使用设备的情况下访问存根Android API。 这可以让你从androidTest移动更多的testing来test

对于Android Studio 1.2或更高版本,我包含这个答案,因为这是在谷歌的第一个排名之一,这是一个优秀和非常容易遵循教程如何设置Android Studiounit testing,这是链接: https:/ /io2015codelabs.appspot.com/codelabs/android-studio-testing#1

在浪费了2个小时试图运行testing后,我终于用上面的链接做了,希望对你和我一样有用。

如今,Android Studio(当前版本1.4)具有完整的unit testing支持,没有任何解决方法。 正如在自动生成的ExampleUnitTest中所build议的一样:

To work on unit tests, switch the Test Artifact in the Build Variants view.

屏幕截图

去设置,然后build立工具,然后gradle,然后实验。 在实验中取消选中启用所有testing工件。 多数民众赞成在游戏结束