Android Studio中使用junit做单元测试

单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。比如一个函数,一个方法等。关于单元测试要不要做,由谁来做这些问题暂时抛到一边。本文只是单纯的介绍如何用Android Studio做单元测试。

1. 确保你的工程添加了junit依赖,目前一般都会自动添加该项。

dependencies {

    testCompile 'junit:junit:4.12'
  
}

2. 在Android的test目录。

用Android Studio生成一个新的工程时,会默认生成两个test目录,如下图。我们就在这两个目录中编写单元测试的类。


image

3. 假如,我们想要做单元测试的类叫做Calculator,代码如下

public class Calculator {

    public int sum(int x,int y){
        return x+y;
    }

}

4. 利用Android Studio图形界面生成测试类的步骤如下所示:

  • 在编辑视图中选中当前类Calculator,点击右键,弹出如下界面,点击test
image
  • 在接下来的界面中选择Create New Test
image
  • 创建测试类的名字、需要测试的方法和所在的目录
image
  • 随便选一个目录作为测试类的目录
image
  • 好,最终生成了一个测试类,它刚开始是这样的
public class CalculatorTest {

    @Before
    public void setUp() throws Exception {
        mCalculator = new Calculator();
    }

    @After
    public void tearDown() throws Exception {

    }

    @Test
    public void sum() throws Exception {
       
    }
}

5. 在生成的测试类中编写测试逻辑

  • 在测试类中引用需要被测试的对象Calculator,在setUp中给它赋值。
  • 在sum方法中编写具体的测试逻辑,如代码所示,检测3+4是不是等于7
  • 新添加一个测试方法sum()2,测试3+4是不是等于6(这个显然不能通过测试)
public class CalculatorTest {

    private Calculator mCalculator;

    @Before
    public void setUp() throws Exception {
        mCalculator = new Calculator();
    }

    @After
    public void tearDown() throws Exception {

    }

    @Test
    public void sum() throws Exception {
        assertEquals(mCalculator.sum(3,4),7);
    }

    @Test
    public void sum2() throws Exception {
        assertEquals(mCalculator.sum(3,4),6);
    }

}

6. 运行单元测试

在测试类上点击右键,选则运行,如下图所示。

image

7. 结果示意图

结果如下图所示,符合我们的预期,有一个失败了。

image

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 155,931评论 24 680
  • 本文章转载于搜狗测试 本文转自简书,是作者翻译Google I/0 2015中关于测试的codelab。 目录 1...
    夜境阅读 661评论 1 0
  • 时间:2017-6-1 10:00-12:00 人物:伊葱 萌 Magenta 一、关于《秩序的本质》与《隐秩序》...
    Magenta阅读 114评论 0 0
  • 我总觉得成长就很小时候玩红白机上的超级玛丽一样,一个小人儿孤独地向前奔跑,一点点吃金币攒命,吃蘑菇长大,吃花学会扔...
    陈某某121阅读 58评论 0 0
  • 第一次遇见是在网络上认识到你们仨。庆幸没有擦肩而过,庆幸没有轻易地离开,庆幸在最美好的年纪遇见了你们。 不知道你...
    TFSLANG_橙韵阅读 191评论 1 2