测试在android中的信息切换

时间:2012-03-09 11:01:46

标签: android unit-testing junit

我想测试关闭并在junit中打开信息。

public void shutDownState(Context cxt) {
    Log.d(TAG, "in shutdown fun");
    SimpleDateFormat sdfDateTime1 = new SimpleDateFormat(
            "yy-MM-dd HH:mm:ss", Locale.US);
    shutDownTime = sdfDateTime1.format(System.currentTimeMillis());
    try {
        long swithchoffdata;
        if (!"00:00:00.000".equals(dsd.getLastRecord())) {
            swithchoffdata = dsd.insert(shutDownTime.toString(),
                    switchOnTime);
            Log.d(TAG, "switchoffdata: " + swithchoffdata);
        }
    } catch (NullPointerException ne) {
        ne.printStackTrace();
        Log.d(TAG, "Swithch off error: ");
    }
    Log.d(TAG, "swith off: " + dsd.selectAll());
}

public void swithOnState() {
    Log.d("appcheck", "switch on func");
    SimpleDateFormat sdfDateTime1 = new SimpleDateFormat(
            "yy-MM-dd HH:mm:ss", Locale.US);
    switchOnTime = sdfDateTime1.format(System.currentTimeMillis());
    dsd.updateLastRecord(switchOnTime);
    Log.d("appcheck", "switch on: " + dsd.selectAll());
}

这些是我在实际项目中的方法。实际上我应该在我的测试类中对这些方法进行单元测试。请帮帮我。提前谢谢。

1 个答案:

答案 0 :(得分:0)

这是一个可行的模板。关于您的代码有很多未解答的问题。例如,这些方法是否在Activity中?我这么认为。我推荐AndroidTestCase,因为它不会启动活动,因此消耗的开销更少,运行速度更快。 AndroidTestCase提供mContext成员变量,以便您可以将上下文传递给shutDownState()方法。

package com.example.test;

import android.test.AndroidTestCase;

import com.example.YourActivity;

public class YourActivityTest extends AndroidTestCase
{

  private YourActivity mActivity;

  protected void setUp() throws Exception
  {
    super.setUp();
    mActivity = new YourActivity();
    // whatever else you need
  }

  protected void tearDown() throws Exception
  {
    super.tearDown();

    // whatever else you need
  }

  public void testShutDownState()
  {
    mActivity.shutDownState(mContext); // mContext is a dummy context provided
                                   // by AndroidTestCase
    // put some asserts here to confirm correct operation
  }

  public void testSwithOnState()// note: you misspelled switch
  {
    mActivity.swithOnState();

    // put some asserts here to confirm correct operation
  }

}

您可以在通话后使用断言检查您的班级成员变量(例如switchOnTime)。

希望这有帮助。