Я вытаскиваю свои волосы, пытаясь запустить простой тест на совместимость с Vanilla JUnit в моем проекте Android. Я хочу написать тест для класса POJO, который не использует никаких объектов Android. На самом деле, я даже не могу получить тестовую работу, которая ничего не тестирует!Запуск тестов Vanilla JUnit на отдельные классы в проекте Android Eclipse JUnit
Я читал Google's "Testing Fundamentals" documentation, бесчисленное количество вопросов, и я думаю, что я достиг новой высоты глупости, поскольку, похоже, у меня стало меньше, чем у всех в истории Android.
Моя догадка на то, что я должен делать это:
- Создать новый проект андроида. Я уже разработал свое прототипное приложение с действиями, POJO и всем остальным - он отлично работает на моем телефоне. «MyExample»
- В окне «Обозреватель пакетов» Eclipse В проекте андроида, который я хочу проверить, в элементе папки «src» я нажимаю правой кнопкой мыши на элемент пакета: «com.example.myexample», выберите «New»> «Other ...»,
- Затем во всплывающем окне выберите «Android»> «Android Test Project»
- В текстовом поле «Название проекта» я вхожу в «TestMyProject» и ударяю по " Далее ".
- Выберите переключатель «Существующий Android-проект», выберите «MyExample» и нажмите кнопку «Готово».
- В "Package Explorer", разверните "TestMyExample", щелкните правой кнопкой мыши на пакете "com.example.myexample.test, выберите "Создать"> "JUnit Test Case".
- В этом всплывающем окне введите имя" MyTestCase».
Затем я ввожу следующее в файле Java:
package com.example.myexample.test;
import junit.framework.TestCase;
public class MyTestCase extends TestCase {
public void testHelloWorld(){
assertTrue("Hello World Error", false);
}
}
Наконец, я правой кнопкой мыши файл в проводнике пакетов выберите "Run As"> "JUnit Test", затем во всплывающем окне выберите «Использовать настройки конфигурации» и выберите «Запуск Eclipse JUnit Launcher» и нажмите «ОК». ".
Я получаю эту ошибку в окне консоли:
Invalid layout of java.lang.String at value
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (javaClasses.cpp:136), pid=5216, tid=2756
# fatal error: Invalid layout of preloaded class
Кажется, я получаю различные ошибки «Invalid макета» в зависимости от того, что процедуры я использую.
Пожалуйста, помогите!
Ах, спасибо, это сработало! Есть ли способ тестирования объектов в проекте андроида, которые не ссылаются на какие-либо объекты андроида, без использования реального или виртуального устройства и без использования roboelectric или mockito и т. Д.? Просто используя JUnit на обычной виртуальной машине? – Jodes
Да, если вы тестируете что-то, что ничего не использует в каркасе Android, вы должны просто написать для него обычный тест JUnit и запустить его как тест JUnit на JVM, и он должен работать нормально.Robolectric также очень хорош для запуска модульных тестов на JVM, даже если в коде используется фреймворк Android. Mockito не имеет ничего общего с этим, вы можете использовать его с любым типом теста, который вам нужен, если вы хотите иметь издевательства. –
Спасибо - мне нужно сделать не-андроидный проект (ы) для кода (и/или тестов) для тестирования с использованием простого JUnit на JVM? – Jodes