我有一个显示“ Hello World”的Android项目。它是通过Android Studio中的“空白活动”模板创建的。
然后,在我的应用程序包(具有我的活动的同一包)中添加/创建一个新的Java类。我称其为Shape并添加一个简单的构造函数
public class Shape {
public Shape(int i){
if (i==0){
throw new IllegalArgumentException("Cant have 0");
}
}
}
伟大的。现在,我有一个完全不涉及Android的课程,并且我想对其进行单元测试。接下来我该怎么办?
这是我的问题停止的地方。下面我将介绍我尝试过的内容。
我写测试
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,17)Gradle:错误:包org.junit不存在
错误:(5,24)Gradle:错误:包org.junit不存在
错误:(8,6)Gradle:错误:找不到符号课堂测试
从Android Studio 1.1开始,提供(实验性)单元测试支持。该页面的一些引号:
您将必须在android模块的build.gradle文件中指定测试依赖项。例如:
dependencies { testCompile 'junit:junit:4.12' testCompile "org.mockito:mockito-core:1.9.5" }
要在AS中使用单元测试支持,您必须执行以下步骤:
更新build.gradle以使用android gradle插件版本1.1.0-rc1或更高版本(手动在build.gradle文件中或在UI中的“文件”>“项目结构”中)
将必要的测试依赖项添加到app / build.gradle(请参见上文)。
在“设置”>“ Gradle”>“实验”中启用单元测试功能。
同步您的项目。
打开“构建变量”工具窗口(在左侧),然后将测试工件更改为“单元测试”。
为测试源代码创建一个目录,即src / test / java。您可以从命令行或使用“项目”工具窗口中的“项目”视图来执行此操作。此时,新目录应以绿色突出显示。注意:测试源目录的名称由gradle插件根据约定确定。
- 创建您的测试。为此,您可以打开一个类,右键单击其名称,然后选择“转到>测试”。添加一些测试用例。
- 右键单击您的新测试类或方法,然后选择“运行...”。
- (可选)您可以直接使用Gradle来减少编译时间。为此,请转到“运行”菜单,然后选择“编辑配置”。在这里,找到默认的JUnit模板,删除启动前的“ Make”步骤,然后添加一个“ Gradle knowledge make”步骤(将任务名称保留为空)。
知道有两种测试类型很重要:androidTest
和test
。
androidTest
主要用于您在仿真器或设备上运行的测试,例如仪器测试。在命令行中,您./gradlew connectedCheck
可以运行它们。test
适用于您不想在设备上运行的测试,例如您编写的单元测试。您运行./gradlew test
以运行这些测试。正如帖所说,你之间进行切换androidTest
,并test
通过改变测试工件Android Studio中。
当然,优选的是,一个设备或仿真器上不运行测试,因为这加速了测试过程很多。借助新的实验单元测试支持,您无需使用设备即可访问存根Android API。这使您可以将更多测试从androidTest
移至test
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句