Тестирование неактивных классов в Android - PullRequest
12 голосов
/ 29 апреля 2011

Я знаю, как тестировать классы Activity с помощью JUnit 4 в Android, но я не могу понять, как тестировать неактивные классы (которые не расширяют Activity, ListActivity или какой-либо другой класс Activity, но используют некоторые API-интерфейсы Android) , Пожалуйста, помогите мне в этом отношении.

Ответы [ 2 ]

18 голосов
/ 02 мая 2011

Для проверки неактивных классов:

  1. создать тестовый проект
  2. создать тестовый набор
  3. работает как Android JUnit Test

    public class MyClassTests extends TestCase {
    
    /**
     * @param name
     */
    public myClassTests(String name) {
        super(name);
    }
    
    /* (non-Javadoc)
     * @see junit.framework.TestCase#setUp()
     */
    protected void setUp() throws Exception {
        super.setUp();
                }
    
    /* (non-Javadoc)
     * @see junit.framework.TestCase#tearDown()
     */
    protected void tearDown() throws Exception {
        super.tearDown();
    }
    
    /**
     * Test something
     */
    public final void testSomething() {
                fail("Not implemented yet");
        }
    }
    
4 голосов
/ 29 апреля 2011

Android SDK включает в себя JUnit. Фактически тестовые классы Android, такие как AndroidTestCase и InstrumentationTestCase, наследуются от junit.framework.TestCase. Это означает, что вы можете использовать стандартный тестовый пример JUnit для тестирования класса, отличного от Activity, и включить его в проекты Android.

Например, вы можете создать проект Android с простым классом для тестирования:

public class MyClass {
    public static int getOne() {
        return 1;
    }
}

и тестовый проект Android со стандартным тестом JUnit для тестирования этого класса:

public class TestMyClass extends TestCase {

  public void testMyClass() {
      assertEquals(1, MyClass.getOne());
  }
}

и запустите его на устройстве Android или на эмуляторе Android.

Более подробная информация после просмотра разъяснения вопроса в комментариях:

AndroidTestCase или другие тестовые классы Android могут использоваться для тестирования не-Activity классов, которым требуется доступ к остальной части платформы Android (с фиктивной активностью, предоставляемой в setUp () при необходимости). Они дают вам доступ к контексту, если вам необходимо, например, связать со службой.

...