2013-12-03 1 views
5

Я пытался выяснить в течение нескольких часов, как издеваться над вызовом Environment.getExternalStorateState() во время тестирования моего приложения для Android.Пытается высмеять Environment.getExternalStorageState

Я смог высмеять SystemServices, Providers и Services, но я не могу понять, как издеваться над этим вызовом, поскольку это не вызов чего-то, предоставленного в моем контексте, а что-то в среде ОС.

Буду Вам благодарен за помощь.

ответ

8

Вы могли бы написать помощника вокруг этого вызова и легко высмеивать его после того, как (извините за то, что помощник часть в имени класса):

public class EnvironmentHelper { 
    public String getStorageState() { 
     return Environment.getExternalStorateState(); 
    }  
} 

Или, если вы используете Robolectric вы могли бы назвать:

ShadowEnvironment.setExternalStorageState(Environment.MEDIA_MOUNTED); 

Это зависит от ваших установок и потребностей, но я бы рекомендовал инвестировать в Robolectric

0

Я просто работал над завершением вызова метода «Окружающая среда» в моем классе тестового помощника, чтобы я мог высмеять статус SD-карты, как я хотел, в зависимости от переменной, которую я мог бы установить по желанию в каждом тестовом случае. Лучшее решение, я думаю.

Смежные вопросы