Java 为android创建简单测试有困难”;“你好,世界”;程序
嘿,伙计们,我需要一些帮助来测试android studio中的Hello world程序。这就是我尝试过的,我基本上只是做了一个空项目,默认情况下你会得到“Hello world”节目 现在我需要测试这个“hello world”应用程序,也就是说,一旦我运行了测试,测试应该检查emulator中是否显示“hello world” 现在,如果你查看谷歌测试页面 您将看到已经有一个代码段可以执行完全相同的操作,请参见下面的代码段:Java 为android创建简单测试有困难”;“你好,世界”;程序,java,android,Java,Android,嘿,伙计们,我需要一些帮助来测试android studio中的Hello world程序。这就是我尝试过的,我基本上只是做了一个空项目,默认情况下你会得到“Hello world”节目 现在我需要测试这个“hello world”应用程序,也就是说,一旦我运行了测试,测试应该检查emulator中是否显示“hello world” 现在,如果你查看谷歌测试页面 您将看到已经有一个代码段可以执行完全相同的操作,请参见下面的代码段: public void testMyFirstTestTextV
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);
}
现在仍然有一个错误,我在MainActivity
之后获取getString
,在android studio中显示一条红色下划线,如果我将鼠标悬停在上面,则显示以下错误:
无法从静态引用非静态方法“getString(int)”
上下文
然后,如果我将鼠标悬停在mFirstTestText
上,会出现以下错误:
无法解析符号mFirstTestText
现在我不知道用什么替换这两个方法/变量,有人能帮我理解/解决这个问题吗
整个主类代码::
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);
}
}
对于显示的代码,
mFirstTestText
未初始化
编辑
我将在这里展示一个示例,说明如何更改TextView的文本,更简单地说,您的类应该是什么样子:
AndroidManifest.xml
活动\u main\u example.xml
!我已经发布了整个主类代码,我希望我是有意义的:)据我所知,您的类是正确的,但是是空的,因为没有命令可以执行您想要的操作。发布另外两个文件,AndroidManifest.xml和MainActivity.xml。。。。由于您似乎是Android系统的新手,请参考活动生命周期。最后,我能提供的是:在onCreate
函数中,用textfield启动一个变量,然后使用该变量更改textfield的内容。。。在我看来,您找到的“snippet”并不是最好的起点。我想对于mFirstTestText
我应该有以下android.widget.TextView
,但后来我在getText()上得到一个错误,说非静态方法“getText()”不能从静态上下文引用。
,整行代码看起来像这样final String actual=android.widget.TextView.getText().toString()代码>。
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
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");
}
<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>