我有一个Android项目,显示" Hello World"。它是由"空白活动"来自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:错误:找不到符号类Test
答案 0 :(得分:34)
自Android Studio 1.1以来,有(实验性的)unit test support。该页面的几个引用:
您必须在build.gradle中指定测试依赖项 你的android模块的文件。例如:
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插件根据约定确定。
- 创建测试。您可以通过打开课程,右键单击其名称并选择"转到>来完成此操作。测试&#34 ;.添加一些测试 例。
- 右键单击新的测试类或方法,然后选择"运行..."。
- (可选)您可以直接使用Gradle缩短编译时间。为此,请转到“运行”菜单并选择“#34;编辑” 配置&#34 ;.在那里,找到默认的JUnit模板,删除 "使"在发布前步骤并添加一个" Gradle aware make"相反 (将任务名称留空)。
醇>
重要的是要知道有两种测试类型:androidTest
和普通test
。
androidTest
主要用于在模拟器或设备上运行的测试,例如检测测试。在命令行中,使用./gradlew connectedCheck
运行这些。test
适用于您不想在设备上运行的测试,例如您编写的单元测试。您运行./gradlew test
来运行这些测试。如引言中所述,您可以通过更改测试工件在Android Studio中的androidTest
和test
之间切换。
当然,最好不要在设备或模拟器上运行测试,因为这会加快测试过程很多。通过新的实验性单元测试支持,您可以在不使用设备的情况下访问存根的Android API。这样,您就可以将更多测试从androidTest
移至test
。
答案 1 :(得分:4)
对于android studio 1.2或更高版本,我包含了这个答案,因为这是谷歌的第一个排名之一,这是一个非常简单且非常容易学习如何使用Android Studio设置单元测试的教程,这是链接: https://io2015codelabs.appspot.com/codelabs/android-studio-testing#1
在浪费了2个小时试图进行测试后,我终于用上面的链接做了,希望它对你和我一样有用。
答案 2 :(得分:3)
现在Android Studio(当前版本1.4)具有完整的单元测试支持,没有任何解决方法。正如在自动生成的ExampleUnitTest:
中所建议的那样 To work on unit tests, switch the Test Artifact in the Build Variants view.
答案 3 :(得分:0)
转到设置,然后构建工具,然后进行gradle,然后进行实验。在实验性取消选中启用所有测试工件。多数民众赞成游戏