如何在Android JUnit测试中测试文本框值

时间:2011-03-26 07:12:59

标签: java android unit-testing junit testcase

我刚刚创建了登录屏幕项目。我为此编写了测试用例。我不知道如何在JUnit测试用例的文本框中输入文本。我只是喜欢这个

         public void testlogin() {
    final String n1 = "adithi";
    final String p1 = "adithi";
    String name, pass;
    editUname.clearComposingText();
    editPswd.clearComposingText();
    TouchUtils.tapView(this, editUname);
    sendKeys("adithi");
    TouchUtils.tapView(this, editPswd);
    sendKeys("adithi");

    activity.runOnUiThread(new Runnable() {

          public void run() {


            signinbtn.performClick();
          }
        }); 

        name = editUname.getText().toString();

        pass = editPswd.getText().toString();

    Log.e("name",name); 
    Log.e("Password",pass);
    assertEquals(n1, name);
    assertEquals(p1, pass);
}

测试用例结果是

 junit.framework.ComparisonFailure: expected:<adithi> but was:<>
 at com.firstpageTest.Test.testlogin(Test.java:126)
 at java.lang.reflect.Method.invokeNative(Native Method)
 at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:204)
 at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:194)
 atandroid.test.ActivityInstrumentationTestCase2.runTest
    (ActivityInstrumentationTestCase2.ja
 atandroid.test.ActivityInstrumentationTestCase2.runTest
   (ActivityInstrumentationTestCase2.java:186)
  at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
  at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
  at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:520)
  at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1447)

请指导我。

2 个答案:

答案 0 :(得分:1)

它是一个简单的,我在向JUnit提供输入时犯了一个小错误。我必须给出

       sendKeys("A D I T H I");

现在有效。

答案 1 :(得分:0)

请注意。我不是Java人,但是......

您的测试失败了,因为它失败了,您的代码没有以期望的方式运行。它说expected:<Karthika> but was:<>

因此,您的UI中的字符串可能是null。你将字符串Karthika放在用户界面中,然后你的测试要求两个字符串都是adithi,但它没有说它是空的。

  1. 某处,您的用户界面中的文字为空。
  2. 认为它应该是assertEquals(actualvar, whatyouexpect);,如assertEquals(name, n1);