在Android開發(fā)過程中,我們往往忽略了單元測試功能, 主要還能還是大家覺得 真機在手,運行調(diào)試特別直觀。
不過如果我們能夠養(yǎng)成單元測試的習(xí)慣,相信能更加提升我們應(yīng)用開發(fā)的速度。
當我們創(chuàng)建一個Android Studio項目時,我們會發(fā)現(xiàn)項目結(jié)構(gòu)中,多了一個test目錄 src/test/java 這個目錄,就是AS為了方便我們進行單元測試,而幫我們創(chuàng)建的目錄。當然,我們也可以自己進行創(chuàng)建。同時,build.gradle中,還需要添加Junit測試依賴。
1. dependencies {
2. compile fileTree(include: ['*.jar'], dir: 'libs')
3. testCompile 'junit:junit:4.12'
4. }
下面,就來創(chuàng)建一個簡單的Junit單元測試。
image
首先,我們需要在測試目錄,創(chuàng)建一個測試類,這里我們創(chuàng)建的是Calculator運算類
1. package com.example.a1.myapplication;
3. /**
4. * Created by 1 on 2017/8/21.
5. */
7. public class Calculator {
8. public double sum(double a, double b){
9. return a+b;
10. }
12. public double substract(double a, double b){
13. return a-b;
14. }
16. public double divide(double a, double b){
17. return a/b;
18. }
20. public double multiply(double a, double b){
21. return a*b;
22. }
23. }
在該類中,我們寫了加減乘除4個方法,然后,我們需要點擊類名,右鍵/goto/test 生成測試類
image
這時,在當前目錄下,我們會生成一個CalculatorTest測試類
1. package com.example.a1.myapplication;
3. import org.junit.Before;
4. import org.junit.Test;
6. import static org.junit.Assert.*;
8. /**
9. * Created by 1 on 2017/8/21.
10. */
11. public class CalculatorTest {
12. private Calculator mCalculator;
13. @Before
14. public void setUp() throws Exception {
15. mCalculator = new Calculator();
16. }
18. @Test
19. public void sum() throws Exception {
20. assertEquals(6d, mCalculator.sum(1d, 5d), 0);
21. }
23. @Test
24. public void substract() throws Exception {
25. assertEquals(2d, mCalculator.substract(5d, 4d), 0);
26. }
28. @Test
29. public void divide() throws Exception {
30. assertEquals(3d, mCalculator.divide(20d, 5d), 1);
31. }
33. @Test
34. public void multiply() throws Exception {
35. assertEquals(12d, mCalculator.multiply(2d, 5d), 1);
36. }
38. }
在該類中,setUp方法用來實例化我們的需要測試類,然后,在加減乘除方法調(diào)用assertEquals()方法,來計算測試結(jié)果,第一個參數(shù),需要填入正確結(jié)果,第二個參數(shù)為
我們的方法調(diào)用,第三個參數(shù)為允許誤差值。 這里,我們給第一個的參數(shù)正確,第二個計算結(jié)果錯誤 第三個計算結(jié)果在誤差值內(nèi),第四個結(jié)果沒在誤差值之外
image
最后,右鍵點擊運行該類。
運行完成后,我們就可以在信息中查看運行結(jié)果,
image