Runtime Exception в тестировании Android JUnit - PullRequest
3 голосов
/ 29 июля 2010

У меня есть простое действие HelloWorld, которое я пытаюсь проверить с помощью теста Android JUnit.Само приложение работает так, как должно, но тест завершается неудачно с

"java.lang.RuntimeException: невозможно разрешить действие для: Intent {action = android.intent.action.MAIN flags = 0x10000000 comp = {no.helloworld.HelloWorld / no.helloworld.HelloWorld}} at no.helloworld.test.HelloWorldTestcase.setUp (HelloWorldTestcase.java:21) "

Это мой класс активности:

package no.helloworld;

import android.app.Activity;import

android.os.Bundle;

открытый класс HelloWorld extends Activity {

@ Override

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
} }

И тест:

открытый класс HelloWorldTestcase расширяет ActivityInstrumentationTestCase2 {

private HelloWorld myActivity;
private TextView mView;
private String resourceString;
public HelloWorldTestcase() {
    super("no.helloworld.HelloWorld", HelloWorld.class);
}

@Override
protected void setUp() throws Exception {
    super.setUp();
    myActivity = this.getActivity();
    mView = (TextView) myActivity.findViewById(no.helloworld.R.id.txt1);
    resourceString = myActivity
            .getString(no.helloworld.R.string.helloworld);
}

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

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

protected void tearDown() throws Exception {
    super.tearDown();
}

Почему тест не пройден?Действие (конечно) определено в AndroidManifest.xml, и приложение работает так, как должно.

1 Ответ

7 голосов
/ 06 августа 2010

Пакет в вызове конструктора должен соответствовать цели инструментария в манифесте. Это должно быть "no.helloworld" вместо "no.helloworld.HelloWorld"

...