У меня есть довольно крупная библиотека, которую я разработал специально для использования в моем Приложении Android. Однако сама бизнес-логика не имеет никакой зависимости от Android. Для сохранения этого я использовал палату общин, Регистрирующуюся всюду по этой библиотеке, и это - соответствующие тесты JUnit (который я выполняю в Eclipse).
Однако теперь, когда я начинаю интегрировать его в Действие, которое я запускаю на Android, я не могу заставить свой вход работать. В Eclipse/JUnit я просто вытянул в файле банки log4j, а также log4j.properties файле. Это, кажется, не работает при развертывании к устройству. После борьбы с попыткой заставить это работать в течение нескольких часов, я сдался и попытался заменить все свое свободное городское население, регистрирующее материал с android.util.Log. Теперь я могу войти в систему устройство.. но все тесты JUnit повреждаются. Когда любой JUnit пытается зарегистрировать использование android.util.Log, это бросает RuntimeException 'Тупик!'.
Я предпочел бы возвращаться своему свободному городскому населению, регистрирующему подход.. если кто-либо может помочь с этим.. иначе.. что я могу сделать для получения моего выполнения тестовых сценариев JUnit с помощью 'android.util.Log'?
Заранее большое спасибо.. Я потратил больше, чем несколько часов на этом, и я хотел бы идти дальше к написанию реального кода снова!
Вы можете создать интерфейс для своего собственного регистратора, который в зависимости от платформы создает экземпляр делегата для ведения журнала, который является общим для платформы. Пока вы работаете и отлаживаете, этого должно быть достаточно, позже в производственном коде на устройстве вы можете просто вставить регистратор, который ничего не делает, и вы сэкономите все время, необходимое для захламления телефонного журнала.
Я не верю, что есть порт log4j для Android atm. Тем не менее, Android имеет встроенный java.util.logging, и commons logging может подключаться к нему через Jdk14Logger
. Если commons logging работает на Android, то вам, вероятно, будет хорошо идти.