Я знаю, как тестировать классы активности с JUnit 4 в Android, но я не могу понять, как тестировать классы без активности (которые не расширяют Activity, ListActivity или какой-либо другой класс Activity, но используют некоторые API Android), Пожалуйста, помогите мне в этом отношении.
Тестирование неактивных классов в Android
Ответ 1
Чтобы проверить классы неактивности:
- создать тестовый проект
- создать тестовый пример
-
запускается под 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"); } }
Ответ 2
В Android SDK включен JUnit. На самом деле, тестовые классы Android, такие как AndroidTestCase и InstrumentationTestCase, наследуются от junit.framework.TestCase. Это означает, что вы можете использовать стандартный тестовый пример JUnit для тестирования класса без активности и включить его в проекты Android.
Например, вы можете создать проект Android с простым классом для тестирования:
public class MyClass {
public static int getOne() {
return 1;
}
}
и Android Test Project со стандартным тестом JUnit для тестирования этого класса:
public class TestMyClass extends TestCase {
public void testMyClass() {
assertEquals(1, MyClass.getOne());
}
}
и запустить его на устройстве Android или на эмуляторе Android.
Дополнительная информация после просмотра разъяснения вопроса в комментариях:
AndroidTestCase или другие тестовые классы Android могут использоваться для тестирования классов без активности, которым необходим доступ к остальной части фреймворка Android (при необходимости, при наличии фиктивной активности, предоставляемой в setUp()). Это дает вам доступ к контексту, если вам нужно, например, привязать к службе.