Articles of unit testing

Robolectric buildActivity () с шпионами Mockito?

Мне кажется, что создание тестового модуля Activity с утилитами жизненного цикла Robolectric (начиная с Robolectric.buildActivity() ) и Robolectric.buildActivity() и того же действия с помощью шпиона Mockito являются взаимоисключающими. Поскольку buildActivity() управляет построением объекта Activity, единственным местом для добавления шпиона для Activity является вызов функции buildActivity() . Однако шпион не работает должным образом, когда он добавляется […]

Робоэлектрические и IntentServices

Используя Robolectric, как можно было бы протестировать IntentService, который транслирует намерения в качестве ответа? Предполагая следующий класс: class MyService extends IntentService { @Override protected void onHandleIntent(Intent intent) { LocalBroadcastManager.getInstance(this).sendBroadcast(new Intent("action")); } } В моем тестовом примере я пытаюсь сделать что-то вроде этого: @RunWith(RobolectricTestRunner.class) public class MyServiceTest{ @Test public void testPurchaseHappyPath() throws Exception { Context context […]

Как насмехаться с getApplicationContext

У меня есть приложение, которое хранит информацию о приложении. Контекстная информация приложения разделяется между действиями в классе MyApp, который расширяет класс Application. Я пишу единичный тест для своей деятельности, и я хочу проверить, что, когда пользователь нажимает кнопку в действии, состояние приложения изменится. Что-то вроде этого: @Override public void onClick(View pView) { ((MyApp)getApplicationContext()).setNewState(); } Проблема […]

Почему мой JSONObject не работает?

Я запускаю свои тесты, используя gradle testFlavorType JSONObject jsonObject1 = new JSONObject(); JSONObject jsonObject2 = new JSONObject(); jsonObject1.put("test", "test"); jsonObject2.put("test", "test"); assertEquals(jsonObject1.get("test"), jsonObject2.get("test")); Вышеупомянутый тест завершается успешно. jsonObject = new SlackMessageRequest(channel, message).buildBody(); String channelAssertion = jsonObject.getString(SlackMessageRequest.JSON_KEY_CHANNEL); String messageAssertion = jsonObject.getString(SlackMessageRequest.JSON_KEY_TEXT); assertEquals(channel, channelAssertion); assertEquals(message, messageAssertion); Но вышеуказанные два запроса терпят неудачу. Трассировка стека говорит, что channelAssertion […]

Прозрачный прокси для тестирования ответов сервера офлайн на Android

У меня есть подсистема приложений Android, основанная на данных. Добавление тестов, направленных на 100% охват. Использование OkHttp . Как прозрачно перехватывать вызовы на мой сервер с макетными ответами? Хотите, чтобы это для сквозных, а также модульных тестов. Например: установка типа сборки для MockServer должна загружать приложение, которое будет отображать макетные ответы в эмуляторе.

Android Studio 2.1: ошибка: пакет org.junit не существует

Обновление : его ошибка, и об этом сообщается, пожалуйста, запустите: https://code.google.com/p/android/issues/detail?id=209832&thanks=209832&ts=1463161330 Я настраиваю модульное тестирование на студии Android. Я прочитал документацию и настроил ее точно так, как указано. У меня есть тестовая папка, настроенная как src/test/java Я сделал случайный тестовый класс: import org.junit.Test; import static org.junit.Assert.*; import static org.hamcrest.CoreMatchers.*; public class RandomTestClass { @Test public […]

Как модульный анализ JSON

Я работаю над Android-приложением, в котором я загружаю данные JSON из веб-службы. Класс, анализирующий данные, выглядит примерно так: public class JsonCourseParser implements CourseParser { public Course parseCourse(String courseData) { Course result; try { JSONObject jsonObject = new JSONObject(courseData); … result = new Course("foo", "bar"); } catch (JSONException e) { result = null; } return result; […]

ActivityUnitTestCase и startActivity с ActionBarActivity

Я пытаюсь проверить действие, которое использует ActionBarActivity (из библиотеки appcompat). Мне нужно специальное приложение, чтобы иметь возможность манипулировать системой DI для загрузки моей тестовой службы вместо реального сервиса. Если у меня есть мой тест и вызывается startActivity, я получаю следующую ошибку: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. Если […]

Является ли создание модульных тестов в отдельном проекте правильным подходом для Android?

Это описание того, как начать работу с тестированием на Android, выглядит непоследовательным: http://developer.android.com/guide/topics/testing/testing_android.html В нем говорится: Проект тестирования – это каталог или проект Eclipse, в котором вы создаете исходный код, файл манифеста и другие файлы для тестового пакета. Android SDK содержит инструменты для Eclipse с ADT и для командной строки, которые создают и обновляют тестовые […]

Модульное тестирование создания базы данных SQLite с использованием Spock и Robospock

spock-core:0.7-groovy-2.0 robospock:0.5.0 Android Studio 0.8.2 Fedora release 20 (Heisenbug) Это полное решение. Теперь он успешно компилирует и запускает единичный тест, а структура каталогов совпадает с редактированием предварительного просмотра. Пожалуйста, не стесняйтесь комментировать все, что не выглядит правильным. Изменить решение ===== build.gradle: apply plugin: 'java' apply plugin: 'groovy' repositories { mavenCentral() maven { // Location of […]