在上面的代码中,事件处理函数直接写在的应用总的Controller中,其实也可以写到具体的Controller中,为了代码的可维护性,最好还是将事件处理写到对应模块的Controller中比较好。
下面就是AppEvent的定义:
package com.bjcic.wkj; import android.content.Context; import android.os.Bundle; public class AppEvent { public AppEvent(Context context, int eventId, Bundle params) { this.context = context; this.eventId = eventId; this.params = params; } public Context getContext() { return context; } public void setContext(Context context) { this.context = context; } public Bundle getParams() { return params; } public int getEventId() { return eventId; } public void setEventId(int eventId) { this.eventId = eventId; } public final static int EVE_NONE = 0; public final static int EVE_SPLASH_END = 1; // Splash界面显示时间到期 private Context context = null; private int eventId = 0; private Bundle params = null; } |
在上面的事件定义中,事件中包含当前的Activity,事件ID和事件参数,这样AppController就可以直接对事件进行处理了。
最后,我们在Splash页面停留10秒,这里需要定义一个常量,我们将应用中需要用到的重要常量,统一定义到AppKeys中,如下所示:
package com.bjcic.wkj; public class AppKeys { public final static long SPLASH_DURATION = 10 * 1000; } |
好的,现在可以运行这个应用程序了,如果一切正常,应该可以看到一个Splash页面显示10秒钟后,进入到程序主界面中。至此我们的第一个验收测试用例就顺利通过了。
这时,我们再回到WkjTest这个工程中,以Android Junit形式运行MainActivityTest,这时应该显示所有测试用例全部通过。
注:大家也许注意到了,测试驱动开发是以一小步一小步的开发测试为基础的,在实际工作中,有一半愉上的程序员喜欢先把所有代码写好,然后在进行调试。当然也有一部分开发人员写一点调一点,这纯属于习惯性问题,不存在孰优孰劣的问题。但是采用测试驱动开发方法学,就要采用后面的工作方式。
因此,测试驱动开发不一定适合所有人,对于喜欢一次性先把代码写好,然后进行调试的人来说,让他们接受测试驱动开发的工作方式是很困难的,这一点希望大家能够重视起来。
相关文章: