Android JUnit深入浅出(五)——AndroidTest例子分析
来源:互联网 发布:北京鑫宇昊辰网络 编辑:程序博客网 时间:2024/05/19 13:10
前面我们学习了android.test包中的大部分类,是该通过学习具体的例子将前面的知识融会贯通,让我们的理解更加深刻,例子程序代码在本文末有下载,下载后添加Eclipes的工程中,边看这篇文章边阅读例子程序的代码。
首先分析整个工程的结构图,如下:
AndroidTestCase,Testsuite在前面的篇幅中已经学习过了,ContestTest、MathTest、SomeTest、ExampleSuite在前面的例子中已经为大家介绍了,这里我们主要说明整个程序是如何运行的?
核心类代码简要列举,如下:
- public class JUnit extends Activity {
- static final String LOG_TAG = “junit”;
- Thread testRunnerThread = null;
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- Button launcherButton = (Button)findViewById( R.id.launch_button );
- launcherButton.setOnClickListener( new View.OnClickListener() {
- public void onClick( View view ) {startTest();}
- } );
- }
- private synchronized void startTest()
- {
- if( ( testRunnerThread != null ) &&!testRunnerThread.isAlive() )
- testRunnerThread = null;
- if( testRunnerThread == null )
- {
- testRunnerThread = new Thread( new TestRunner( this ) );
- testRunnerThread.start();
- }
- else
- {
- Toast.makeText(this, “Test is still running”, Toast.LENGTH_SHORT).show();
- }
- class TestRunner implements Runnable,TestListener
- {
- static final String LOG_TAG = “TestRunner”;
- int testCounter;
- int errorCounter;
- int failureCounter;
- ……;
- Activity parentActivity;
- public TestRunner( Activity parentActivity )
- {this.parentActivity = parentActivity;}
- public void run()
- {
- testCounter = 0;
- errorCounter = 0;
- failureCounter = 0;
- ………….;
- Log.d( LOG_TAG, “Test started” );
- /*整个代码的核心*/
- AndroidTestRunner testRunner = new AndroidTestRunner();
- testRunner.setTest( new ExampleSuite() );
- testRunner.addTestListener( this );
- testRunner.setContext( parentActivity );
- testRunner.runTest();
- Log.d( LOG_TAG, “Test ended” );
- }
- // TestListener
- public void addError(Test test, Throwable t)
- {
- Log.d( LOG_TAG, “addError: “+test.getClass().getName() );
- Log.d( LOG_TAG, t.getMessage(), t );
- ++errorCounter;
- …….;
- }
- public void addFailure(Test test, AssertionFailedError t)
- {
- Log.d( LOG_TAG, “addFailure: “+test.getClass().getName() );
- Log.d( LOG_TAG, t.getMessage(), t );
- ++failureCounter;
- …….;
- }
- public void endTest(Test test)
- {
- Log.d( LOG_TAG, “endTest: “+test.getClass().getName() );
- …..;
- }
- public void startTest(Test test)
- {
- Log.d( LOG_TAG, “startTest: “+test.getClass().getName() );
- ++testCounter;
- …….;
- }
- }
- Android、JUnit深入浅出(五)——AndroidTest例子分析
- Android JUnit深入浅出(五)——AndroidTest例子分析
- Android、JUnit深入浅出(二)——JUnit例子分析
- Android、JUnit深入浅出(二)——JUnit例子分析
- Android、JUnit深入浅出(五)——An…
- Android、JUnit深入浅出(一)——JUnit初步解析
- Android、JUnit深入浅出(一)——JUnit初步解析
- android Junit知识(例子分析)
- android Junit知识(例子分析)
- Android、JUnit深入浅出(七)——总结篇
- Android、JUnit深入浅出(四)——AndroidTestRunner
- Android、JUnit深入浅出(六)——如何运行单元测试?
- Android、JUnit深入浅出(七)——总结篇
- Android、JUnit深入浅出(七)——总结篇
- Android、JUnit深入浅出(六)——如何运行单元测试?
- Android、JUnit深入浅出(一)——JU…
- Android、JUnit深入浅出(二)——JU…
- Android、JUnit深入浅出(三)——JU…
- 动态生成WizardPage
- linux驱动编写(入门)
- DBA的典型职责
- linux 下 JFreeChart 乱码 (中文状态,十分怪异的小方块"口")
- XStream应用
- Android JUnit深入浅出(五)——AndroidTest例子分析
- 一键快速选图——微博,博客或论坛发图片的超牛工具
- IOS 如何选择delegate、notification、KVO?
- 推荐+1置顶+1(分享、讨论、实现) 通用软件注册功能之建立有效的软件保护机制
- GEF常见问题1:为图形编辑器设置背景图片
- Windows server 2008修改IIS7的文件上传大小限制解决方案
- 一些参数,弥补CMS(Concurrent Mark-Sweep)收集器的缺点
- 【BZOJ3043】IncDec Sequence
- 【PB】PB调用WebService