目录

+ 参考文章: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 mActivityRule = new ActivityTestRule<>(MainActivity.class);

@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))))

```