难以创建为android创建简单测试" hello world"程序

时间:2015-07-07 18:00:27

标签: java android

嘿伙计们,我需要一些帮助来测试android studio中的Hello world程序。继续我所尝试的,我基本上只做了一个空项目,默认情况下你得到了#34; Hello world"计划。

现在我需要测试这个"你好世界"申请I.E.一旦我运行测试,测试应该检查" Hello world"在模拟器中显示。

现在,如果您查看Google测试页面here

您会看到已经有一个片段完全相同,请参阅下面的代码段:

public void testMyFirstTestTextView_labelText() {
    final String expected =
            mFirstTestActivity.getString(R.string.my_first_test);
    final String actual = mFirstTestText.getText().toString();
    assertEquals(expected, actual);
}

需要对此代码段进行编辑才能使其正常工作,因此我对其进行了编辑,请参见下文:

public void testMyFirstTestTextView_labelText() {
        final String expected =
                MainActivity.getString(R.string.hello_world); // added //MainActivity as thats the name of my activity and hello_would as thats the //variable i have in strings.xal
        final String actual = mFirstTestText.getText().toString();
        assertEquals(expected, actual);
    }

现在仍然有一个错误,我在getString显示android studio中的红色下划线后得到MainActivity,如果我将鼠标悬停在它上面,则显示以下错误:

  

非静态方法" getString(int)"不能从静态中反抗   上下文。

然后如果我将鼠标悬停在mFirstTestText上,我会收到以下错误:

  

无法解析符号mFirstTestText

现在我不知道用这两个方法/变量代替什么,有人可以帮我理解/解决这个问题吗?

整个Main类代码::

package com.example.gautam.orbita;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;


public class MainActivity extends ActionBarActivity {

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

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

1 个答案:

答案 0 :(得分:1)

对于显示的代码mFirstTestText未初始化。

修改

我将在这里展示一个关于你的课程应该是什么样子的例子,用更简单的术语来改变TextView的文本:

的AndroidManifest.xml

<activity android:name=".MainActivity">
  <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
  </intent-filter>
</activity>

MainActivity.java

TextView aTextView; 
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_example);
    aTextView = (TextView ) findViewById(R.id.aTextView);
    aTextView.setText("An example text");
  }

activity_main_example.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
    android:id="@+id/aTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true" />
</RelativeLayout>