9.4如何写单元测试
"不积跬步,无以至千里",因此本节就来学习使用Junit来对代码进行单元测试。在Android测试中,虽然有很多优秀的测试框架来替代Junit,但是由于Junit的简单性,是我们学习测试的最优秀选择。在针对Android平台进行测试时,我们只需要将这些原理移植到Android测试框架上即可。下面我们就基于Eclipse来一步一步学习Junit测试框架。
9.4.1 第一个单元测试
如上文所说,单元测试就是验证代码正确性的另一段代码。因此,在测试之前必须要有代码可测。我们首先建立一个用于完成加法操作的类,代码如下:
/** * 加法接口 */ public interface Adder { public int add(int a, int b); } /** * 加法实现类 */ public class AdderImpl implements Adder { @Override public int add(int a, int b) { return a + b; } } |
首先我们定义了一个Adder接口,该接口中定义了一个add方法。AdderImpl中实现了Adder接口,在add函数中将a和b相加并且返回结果。下面我们就新建第一个单元测试类,选择新建Junit Test Case,如图9-1所示。
下一页界面如图9-2所示。
▲图9-1 新建测试用例▲图9-2 界面
新建的测试类我们命名为AdderTest,该类继承自Junit的TestCase类,选择的目标测试类为AdderImpl,然后单击"下一步"按钮,界面如图9-3所示。
在图9-3中可以选择需要测试的方法,这里选择的就是add方法,当然也可以直接在测试类中手动添加代码来测试特定的方法。最后选择"finish"。此时在AdderTest中完成相关的测试代码。
/** * 加法测试类 */ public class AdderTest extends TestCase { // 要测试的接口对象 Adder mAdder; protected void setUp() throws Exception { mAdder = new AdderImpl(); super.setUp(); } protected void tearDown() throws Exception { mAdder = null; super.tearDown(); } public void testAdd() { assertEquals(0, mAdder.add(0, 0)); assertEquals(1, mAdder.add(1, 0)); assertEquals(2, mAdder.add(1, 1)); assertEquals(0, mAdder.add(1, -1)); assertEquals(Integer.MAX_VALUE + 1, mAdder.add(1, Integer.MAX_VALUE)); assertEquals(Integer.MIN_VALUE - 1, mAdder.add(-1, Integer.MIN_VALUE)); } } |
▲图9-3 选择要测试方法
此时可能会出现找不到TestCase类的错误提示,需要手动将Junit框架引用到你的工程中。在项目上单击右键,在弹出的菜单中选择Properties→Java Build Path→Library项,然后选择 add Library,此时会弹出如图9-4所示的界面。
选择"finish"之后引入TestCase的包即可。
本文选自《Android开发进阶—从小工到专家》第九章,本站经人民邮电出版社和作者的授权。
版权声明:51Testing软件测试网获人民邮电出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。