android studio默认会在src目录下创建androidTest这个文件夹,显然它是做测试用的。今天用它做了一次单元测试,效果不错,把步骤记录下来。
测试内容
CommonUtils类下的moneyFormat2方法,
/**
* 绝对值小于10000元返回元为单位的价格,大于等于10000返回万元为单位的价格
**/
public static String moneyFormat2(int price) {
if (Math.abs(price) < Statics.TEN_THOUAND) {
return price + "元";
} else {
int remainder = price % Statics.TEN_THOUAND;
int ten_thousand = price / Statics.TEN_THOUAND;
if(0 == remainder) {
return ten_thousand + "万元";
} else {
String remainderString = String.format("%04d", Math.abs(remainder));
while (remainderString.endsWith("0")) {
remainderString = remainderString.substring(0, remainderString.length() - 1);
}
return ten_thousand + "." + remainderString + "万元";
}
}
}
Step1: 新建测试类
在androidTest工程下新建CommonUtilsTest类,继承ActivityInstrumentationTestCase2<\LauncherActivity>
Step2: 添加构造方法
添加一个构造方法如下:
public CommonUtilsTest(){
super(LauncherActivity.class);
}
Step3: 添加测试方法
添加测试方法如下:
public void testMoneyFormat2(){
assertEquals("0元", CommonUtils.moneyFormat2(0));
assertEquals("1元", CommonUtils.moneyFormat2(1));
assertEquals("2100元", CommonUtils.moneyFormat2(2100));
assertEquals("1万元", CommonUtils.moneyFormat2(Statics.TEN_THOUAND));
assertEquals("2.1万元", CommonUtils.moneyFormat2(21000));
assertEquals("2.01万元", CommonUtils.moneyFormat2(20100));
assertEquals("200.1万元", CommonUtils.moneyFormat2(2001000));
assertEquals("20.0011万元", CommonUtils.moneyFormat2(200011));
assertEquals("-1万元", CommonUtils.moneyFormat2(-Statics.TEN_THOUAND));
assertEquals("-2.1万元", CommonUtils.moneyFormat2(-21000));
assertEquals("-2.01万元", CommonUtils.moneyFormat2(-20100));
assertEquals("-20.1万元", CommonUtils.moneyFormat2(-201000));
assertEquals("-20.1001万元", CommonUtils.moneyFormat2(-201001));
}
Step4: 运行测试用例
运行测试用例,在CommonUtilsTest类文件下右击,选择“Run’CommonUtilsTest’”,等待程序安装、测试用例运行。在Run面板就可以查看运行结果了,
运行结果
总结
- 对于工具类来说,单元测试简单易行、能节省很多调试的时间。
- 写代码时尽量将复杂的逻辑拆分成小的可测试的子程序,这样可以通过单元测试增强代码质量。