我的JUnit测试不运行 [英] My Junit test doesn't run

查看:501
本文介绍了我的JUnit测试不运行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是新来的Java,Android和JUnit的。我想学习如何编写的JUnit测试Android应用程序。为此,我有一个非常简单的Andr​​oid应用(2活动,2个按钮,每个按钮转到其他活动)。我想测试的按钮。这个应用程序时,已经插上,运行在手机上的罚款。我一直在寻找在SDK中提供的样品,我试图模仿他们。

I'm new to Java, Android and JUnit. I want to learn how to write JUnit tests for an Android application. To that end, I have a very simple Android app (2 activities, 2 buttons, each button goes to the other activity). I want to test the button. This app runs fine on my phone when it's plugged in. I've been looking at the samples provided in the SDK, and I am trying to emulate them.

我的问题是,当我在我的测试项目上单击右键,并选择Run As - > Android的JUnit测试,没有任何反应。我不知道为什么。

My problem is that when I right-click on my test project, and choose Run As -> Android JUnit test, nothing happens. I don't know why.

我的测试code。

package com.example.twoactivities.test;

import android.app.Instrumentation.ActivityMonitor;
import android.test.ActivityInstrumentationTestCase2;
import android.test.suitebuilder.annotation.SmallTest;
import android.widget.Button;

import com.example.twoactivities.MainActivity;
import com.example.twoactivities.MainActivity2;

public class ClickButton extends ActivityInstrumentationTestCase2<MainActivity> {

    private Button mButton2;
    private long TIMEOUT_IN_MS = 100000;

    public ClickButton() {
        super(MainActivity.class);
    }

    @Override
    protected void setUp() throws Exception {
        super.setUp();
        final MainActivity a = getActivity();
        // ensure a valid handle to the activity has been returned
        assertNotNull(a);
    }

    @SmallTest
    public void click(){
        // Set up an ActivityMonitor
        ActivityMonitor activityMonitor = getInstrumentation().addMonitor(MainActivity2.class.getName(), null, false);

        //check if button is enabled
        assertTrue("button is enabled", mButton2.isEnabled());
        //click button
        mButton2.performClick();

        MainActivity2 MainActivity2 = (MainActivity2) activityMonitor.waitForActivityWithTimeout(TIMEOUT_IN_MS );
        assertNotNull("MainActivity2 is null", MainActivity2);
//      assertEquals("Monitor for MainActivity2 has not been called", 1, activityMonitor.getHits());
//      assertEquals("Activity is of wrong type", MainActivity2.class, MainActivity2.getClass());

        // Remove the ActivityMonitor
        getInstrumentation().removeMonitor(activityMonitor);

    }

//      public void tearDown() {
//      }

}

(我知道这是很简单,但我只是试图让基本下跌。)

(I know it's really simple, but I'm just trying to get the basics down.)

我的应用程序。

package com.example.twoactivities;

import com.example.twoactivities.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends Activity {

     @Override
       protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       }
       public void activity2(View view){
          Intent intent = new Intent(this,com.example.twoactivities.MainActivity2.class);
          startActivity(intent);
       }
}

我的应用程序的活动2。

Activity 2 of my application.

package com.example.twoactivities;

import com.example.twoactivities.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;

    public class MainActivity2 extends Activity {

           @Override
           protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main2);
           }

           public void activity1(View view){
              Intent intent = new Intent(this,com.example.twoactivities.MainActivity.class);
              startActivity(intent);
           }
}

任何想法,为什么我的测试类不跑?

Any ideas why my test class doesn't run?

谢谢,
萧蔷

推荐答案

您需要右键点击测试本身,而不是项目。

You have to right click on the test itself, not the project.

根据文档的Andr​​oid测试API支持的JUnit 3 code形式,但不是JUnit 4中尝试命名您的测试方法 testClick

According to documentation Android testing API supports JUnit 3 code style, but not JUnit 4. Try naming your test method testClick

这篇关于我的JUnit测试不运行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆