Как и многие другие, я был рад услышать, что Mockito теперь работает с Android и следил за этим руководством, чтобы увидеть его своими собственными глаза. Все казалось фантастическим, и я приступил к включению фиктивного решения в свой тестовый проект Android...
Ошибка
Однако при настройке тестового проекта моего приложения для использования jar-файлов mockito-all-1.9.5
, dexmaker-1.0
и dexmaker-mockito-1.0
я столкнулся с проблемой в своем самом первом тестовом примере. Собственно эта проблема. Часть, в которой я хотел бы получить помощь, это;
Caused by: java.lang.VerifyError: org/mockito/cglib/core/ReflectUtils
at org.mockito.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:167)
at org.mockito.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
at org.mockito.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:217)
at org.mockito.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145)
at org.mockito.cglib.core.KeyFactory.create(KeyFactory.java:117)
at org.mockito.cglib.core.KeyFactory.create(KeyFactory.java:109)
at org.mockito.cglib.core.KeyFactory.create(KeyFactory.java:105)
at org.mockito.cglib.proxy.Enhancer.<clinit>(Enhancer.java:70)
Мне сообщили, что это «просто еще не совсем работает», поскольку трассировка стека подразумевает, что jar DexMaker не используется - ссылка этот ответ. Тем не менее, я подозреваю, что делаю что-то не так в отношении настройки моего проекта, поэтому я хочу извлечь из коллективной базы знаний здесь, чтобы увидеть, действительно ли это ошибка пользователя или бета-ошибка.
Настройка моего тестового проекта Android
Ниже вы найдете скриншот конфигурации моего тестового проекта. Проект был создан с помощью Android Wizard и не имеет никаких особых функций, кроме включения JAR-файлов Mockito и DexMaker (упомянутых выше) в каталоге libs
.
Тест
Не обращайте внимания на содержание теста (тест завершается ошибкой до выполнения модульного теста), настройка описана ниже;
public class TestSpotRatingCalculator extends InstrumentationTestCase {
@Mock
private AService aService; // Changed the service names being used here - not important.
@Mock
private BService bService;
@Mock
private CService cService;
@Mock
private DService dService;
/**
* @see android.test.AndroidTestCase#setUp()
*/
@Override
protected void setUp() throws Exception {
super.setUp();
MockitoAnnotations.initMocks(this); // Failure here with aforementioned stacktrace...
}
Если у кого-то есть идея, что не так, пожалуйста, отключите звук здесь.
libs/
и создайте путь к классам. - person Brian White   schedule 01.01.2014