2011-09-19 213 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); 

    } 
}