Как бороться с методами, вызывающими методы во время тестирования - PullRequest
0 голосов
/ 07 апреля 2020

Я делаю тесты для приложения, которое не было в хорошем состоянии, и я столкнулся с проблемой, пытаясь создать имитацию для теста. Изменение кода не является вариантом, в этом случае оно должно быть очень тонким.

Функция im testing имеет следующий блок кода:

Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (cameraIntent.resolveActivity(fragment.getActivity().getPackageManager()) != null) {

        //Code I want to test

}

Проблема в том, что исключение нулевого указателя бросается, когда я высмеиваю объект фрагмента, который передается параметром. Нельзя использовать выражение Mockito.when (или, по крайней мере, я не мог заставить его работать) и многие другие варианты, которые я пробовал. У меня закончились идеи, я попробовал рефлексию, robolectri c тени, и я все еще застрял.

Я довольно новичок в тестировании, поэтому я хотел знать, как лучше всего подойти к этой ситуации ,

Как вы могли бы сделать это, если бы без рефакторинга кода?

Если вам нужно провести рефакторинг, какие изменения вы бы сделали? Будучи настолько тонким, насколько это возможно.

...