2011-09-19 164 views
0

我试图运行这个Android的单元测试,下面这个教程::SuperNotCalledException运行单元测试

http://developer.android.com/resources/tutorials/testing/helloandroid_test.html

,并在此过程中得到SuperNotCalledException

下面是测试类代码::

package com.example.helloandroid2.test; 

import android.test.ActivityInstrumentationTestCase2; 
import android.widget.TextView; 

import com.example.helloandroid2.HelloAndroid2Activity; 

public class HelloAndroid2Test extends ActivityInstrumentationTestCase2<HelloAndroid2Activity> 
{ 
    private HelloAndroid2Activity mActivity; 
    private TextView mView; 
    private String resourceString; 

    public HelloAndroid2Test() 
    { 
     super("com.example.helloandroid2", HelloAndroid2Activity.class); 
    } 

    @Override 
    protected void setUp() throws Exception 
    { 
     super.setUp(); 
     mActivity = this.getActivity(); 
     mView = (TextView) mActivity.findViewById(com.example.helloandroid2.R.id.textview); 
     resourceString = mActivity.getString(com.example.helloandroid2.R.string.hello); 
    } 

    public void testPreconditions() 
    { 
      assertNotNull(mView); 
    } 

    public void testText() 
    { 
      assertEquals(resourceString,(String)mView.getText()); 
    } 
} 

类实际上我测试::

package com.example.helloandroid2; 

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.TextView; 

public class HelloAndroid2Activity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     setContentView(R.layout.main); 

    } 
} 

我在2_3_1设置项目API级别和正在使用的AVD设置为相同的。 正在Windows Vista上使用ADT运行Eclipse。

所有的智慧都很好地得到了。提前致谢。

克里斯

回答

4

你在HelloAndroid2Activity需求onCreate()方法调用super.onCreate(savedInstanceState);

2
public class HelloAndroid2Activity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

    } 
}