目录
+ 参考文章:http://www.jianshu.com/p/03118c11c199
+ 推荐Android测试相关:http://www.jianshu.com/collection/b26df74781cb
单元测试的流程
使用Android Studio进行单元测试时,与当前网上众多资料进行比较。在较新版本下(当前我使用的是2.0)的Studio中不需要自己进行BuildVariants的设置以及依赖JUnit包。Studio会自动完成这些操作。
进行基本的单元测试的操作流程如下:
图中是我当前的目录结构,Calculator是实现计算的实体类,首先在Calculator中进行基本的逻辑编写,提供加减乘除四个方法。Studio提供快速创建Test类的方法,对类名右击选择goto->test可以快速的创建或跳转到对应类。在Create Test中提供自动生成的选项,分别是对方法的测试与测试前后进行的一些行为。
在CalculatorTest文件中,在@Before注解中进行实体对象的创建,在@Test中分别进行方法的测试,代码如下:
```java
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.rule.ActivityTestRule;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.assertEquals;
@RunWith(AndroidJUnit4.class)
public class CalculatorTest {
@Rule
public ActivityTestRule
@Test
public void testAdd() {
// TODO: add your test code here
}
@Test
public void testSubtract() {
// TODO: add your test code here
}
@Test
public void testMultiply() {
// TODO: add your test code here
}
@Test
public void testDivide() {
// TODO: add your test code here
}
}
```
编写结束后运行即可得到测试结果。assertEquals的三个参数分别为预期值,实际值,误差范围。将Calculator中sum方法返回值改为a-b,当测试结果与预期不一致时,显示结果如下:描述了预期值与实际值的结果与出错行数。
进行Instrumentation配置:androidTest文件夹是Android Instrumentation Tests的文件夹,test文件夹是Unit Tests的文件夹。首先进行gradle的配置:在defaultConfig下添加testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner",在android下添加在dependencies下添加,当与v7包版本冲突时,将v7包的版本改为与test相匹配即可。Espresso测试流程:在MainActivity中进行相关逻辑处理与代码编写。实现通过点击按钮,TextView显示EditText中的内容。
在Android Studio中进行单元测试时,首先需要创建一个测试类,例如MainActivityInstrumentationTest。在这个测试类中,我们需要确定要测试的类和测试的内容。可以通过onView(withId())或onView(withText())方法获取相应的控件,并进行模拟操作。
以下是一个简单的示例,展示了如何在测试类中测试一个包含Spinner和TextView的界面。当点击Spinner的选项时,TextView会显示相应的文本。
MainActivity中的逻辑:
1. 运行测试类时,在模拟器上可以看到进行了@Test中的具体步骤。
2. 通过onView可以获取控件,当需要点击的选项为ListView或Spinner这类控件中没有id的选项时,可以通过onData对其进行获取。
关于onData中的参数,可以通过获取所有类型为String的选项并进行过滤。
测试结果:
通过onView和onData的操作流程如图所示。因此可以获取空间中条目位置进行模拟点击,之前的代码可以改为:
目录结构如下:
```
?[+]
参考文章:http://www.jianshu.com/p/03118c11c199
推荐Android测试相关:http://www.jianshu.com/collection/b26df74781cb
单元测试的流程
使用AndroidStudio进行单元测试时,与当前网上众多资料进行比较。在较新版本下(当前我使用的是2.0)的studio中不需要自己进行BuildVariants的设置以及依赖JUnit包。studio会自动完成这些操作。
进行基本的单元测试的操作流程如下:
图中是我当前的目录结构,Calculator是实现计算的实体类,首先在Calculator中进行基本的逻辑编写,提供加减乘除四个方法。studio提供快速创建Test类的方法,对类名右击选择goto->test可以快速的创建或跳转到对应类。在Create Test中提供自动生成的选项,分别是对方法的测试与测试前后进行的一些行为。
在CalculatorTest文件中,在@Before注解中进行实体对象的创建,在@Test中分别进行方法的测试,代码如下:
编写结束后运行即可得到测试结果。
assertEquals是JUnit框架中的一个断言方法,用于比较两个值是否相等。它的参数包括期望值、实际值和误差范围(可选) 。如果实际值在误差范围内,测试就会通过。
您可以将Calculator中sum方法返回值改为a-b,当测试结果与预期不一致时,显示结果如下:描述了预期值与实际值的结果与出错行数。
Android测试文件夹包括androidTest和test文件夹。其中androidTest文件夹是Android Instrumentation Tests的文件夹,test文件夹是Unit Tests的文件夹。首先需要进行gradle配置,在defaultConfig下添加testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner',在android下添加dependencies并将v7包版本改为与test相匹配即可。
Espresso测试流程包括在MainActivity中进行相关逻辑处理与代码编写以及创建相关测试类MainActivityInstrumentationTest。在代码中确定测试的类以及测试的内容。通过onView或onData获取相应控件并进行模拟操作 。
在Android开发中,单元测试是一项重要的测试手段。以下是关于Android测试的相关内容:
推荐阅读资源:http://www.jianshu.com/collection/b26df74781cb
单元测试的流程:
1. 使用Android Studio进行单元测试时,与当前网上众多资料进行比较。在较新版本下(当前我使用的是2.0)的studio中不需要自己进行BuildVariants的设置以及依赖JUnit包。studio会自动完成这些操作。
2. 进行基本的单元测试的操作流程如下:首先,在Calculator中进行基本的逻辑编写,提供加减乘除四个方法。然后,studio提供快速创建Test类的方法,对类名右击选择goto->test可以快速的创建或跳转到对应类。在Create Test中提供自动生成的选项,分别是对方法的测试与测试前后进行的一些行为。
3. 在CalculatorTest文件中,在@Before注解中进行实体对象的创建,在@Test中分别进行方法的测试,代码如下:
```java
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class CalculatorTest {
private Calculator calculator;
@Before
public void setUp() throws Exception {
calculator = new Calculator();
}
@Test
public void testAdd() throws Exception {
int result = calculator.add(2, 3);
assertEquals(5, result);
}
}
```
编写结束后运行即可得到测试结果。assertEquals的三个参数分别为预期值,实际值,误差范围。将Calculator中sum方法返回值改为a-b,当测试结果与预期不一致时,显示结果如下:描述了预期值与实际值的结果与出错行数。
4. 进行Instrumentation配置:androidTest文件夹是Android Instrumentation Tests的文件夹,test文件夹是Unit Tests的文件夹。首先进行gradle的配置:在defaultConfig下添加`testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"`,在android下添加在dependencies下添加当与v7包版本冲突时,将v7包的版本改为与test相匹配即可。
Espresso测试流程:在MainActivity中进行相关逻辑处理与代码编写。实现通过点击按钮,TextView显示EditText中的内容。
在Android Studio中进行单元测试时,首先需要创建一个测试类,例如MainActivityInstrumentationTest。在这个测试类中,我们需要确定要测试的类和测试的内容。通过onView(withId())或onView(withText())方法获取相应的控件,并进行模拟操作。
以下是一个简单的示例,展示了如何在测试类中测试一个包含Spinner和TextView的界面。当点击Spinner的选项时,TextView会显示相应的文本。
MainActivity中的逻辑:
1. 运行测试类时,在模拟器上可以看到进行了@Test中的具体步骤。
2. 通过onView可以获取控件,当需要点击的选项为ListView或Spinner这类控件中没有id的选项时,可以通过onData对其进行获取。
测试流程:
1. 点击Spinner。
2. 通过onData获取Spinner中的某个条目并进行模拟点击。
3. 验证TextView显示的字符串是否为Spinner的选项。
4. 关于onData中的参数,通过获取所有类型为String的选项并进行过滤。
参考文章:http://www.jianshu.com/p/03118c11c199
推荐Android测试相关:http://www.jianshu.com/collection/b26df74781cb
单元测试的流程:
使用AndroidStudio进行单元测试时,与当前网上众多资料进行比较。在较新版本下(当前我使用的是2.0)的studio中不需要自己进行BuildVariants的设置以及依赖JUnit包。studio会自动完成这些操作。
进行基本的单元测试的操作流程如下:
1. 在Calculator实体类中编写基本的逻辑,提供加减乘除四个方法。
2. 在CalculatorTest文件中,使用studio提供的快速创建Test类的方法,对类名右击选择goto->test可以快速的创建或跳转到对应类。在Create Test中提供自动生成的选项,分别是对方法的测试与测试前后进行的一些行为。
3. 在CalculatorTest文件中,在@Before注解中进行实体对象的创建,在@Test中分别进行方法的测试。
编写结束后运行即可得到测试结果。
```java
// assertEquals的三个参数分别为预期值,实际值,误差范围
assertEquals("描述了预期值与实际值的结果与出错行数。", a - b, expectedResult, 0.001);
// Espresso测试流程
public class EspressoTest {
// 在MainActivity中进行相关逻辑处理与代码编写。实现通过点击按钮,TextView显示EditText中的内容。
public void clickButtonShowText() {
onView(withId(R.id.button)).perform(click());
onView(withId(R.id.text_view)).check(matches(withText("EditText内容")));
}
@Before
public void setUp() {
// 当需要点击的选项为ListView或Spinner这类控件中没有id的选项时,可以通过onData对其进行获取。
Intent intent = new Intent();
intent.setClassName("com.example.app", "com.example.app.MainActivity");
startActivity(intent);
}
@Test
public void testEspresso() {
clickButtonShowText();
}
}
```
关于onData中的参数,可以通过获取所有类型为String的选项并进行过滤。例如:
```java
onData(anyOf(withType(String.class), withValue(is("选项1"), isAssignableFrom(String.class)), withValue(is("选项2"), isAssignableFrom(String.class))))
```