Тестирование неактивных классов в Android
Я знаю, как тестировать классы активности с JUnit 4 в Android, но я не могу понять, как тестировать классы без активности (которые не расширяют Activity, ListActivity или какой-либо другой класс Activity, но используют некоторые API 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()). Это дает вам доступ к контексту, если вам нужно, например, привязать к службе.