android junit 4
Android、JUnit深入浅出(三)—JUnit深入解析(下)
前面我们学习了junit.framework包,本篇幅我们开始学习android.test包,了解Android SDK是如何扩展junit.framework包。
首先整理android.test包的结构,如下图所示:
在前面的篇幅中说明过:TestCase与TestSuite之间的关系,有些类似于图元对象与容器对象之间的关系。有了这个思想,顺着这张的主线图从上往下看:首先看到的是TestCase类,接着看到InstrumentationTestCase、AndroidTestCase,最后看到ApplicationTestCase,ProviderTestCase2,ServiceTestCase,ActivityTestCase。这不就是Android 系统中4大组成元素:Activity、Provider、Service、BroadCast中的前3个,然后我们在看下Android SDK中的说明:类说明
这些类就不在这里说明,应该与我们平时使用Activity、Service、Provider基本一样。下面举个例子,来说明如何使用这些类,我们就将上一篇J2SE测试例子,在Android中实现:
//MathTest.java
import android.test.AndroidTestCase;
import android.util.Log;
public class MathTest extends AndroidTestCase
{
protected double fValue1;
protected double fValue2;
protected double fRe;
static final String LOG_TAG = “MathTest”;
protected void setUp() {
fValue1= 2.0;
fValue2= 3.0;
fRe = 5.0;
}
public void testAdd()
{
Log.d( LOG_TAG, “testAdd” );
assertTrue( LOG_TAG+”1″, ( (fValue1 + fValue2 ) == fRe ) );
}
}
//ExampleSuite.java
import junit.framework.TestSuite;
public class ExampleSuite extends TestSuite
{
public ExampleSuite()
{
addTestSuite( MathTest.class );
}
}
与上一篇的例子比较后发现,除了引用的包、父类不一样以外,其他部分是完全一样的,在Android AVD上运行程序后看到的结果如下:
单击按钮“Launch test”运行测试用例,输出测试结果,我们的测试都通过了。这个测试界面是我们自己编写的单元测试的界面,下一篇幅我们将重点介绍这部分。
总结说明
这里我们简要学习了android.test包,其实这个的内容远不止这些,包含:3个Interface、20个class、2个Error,列举如下:
android.test包深入的学习,只有到Android SDK中去仔细阅读了。通过学习android.test,让我们对Android 系统的组成元素:Activity、Provider、Service有了更加深入的了解。