Size: a a a

StartAndroid Ru Testing

2018 December 12

M

Michael in StartAndroid Ru Testing
Привет!  Помогите, пожалуйста, не знаю как тестировать RxJava. У меня observable принимает Integer число, делает всякие вычисления и возвращает список List<Long>.
источник

N

Nikolay in StartAndroid Ru Testing
Michael
Привет!  Помогите, пожалуйста, не знаю как тестировать RxJava. У меня observable принимает Integer число, делает всякие вычисления и возвращает список List<Long>.
Я не знаю с чего начать, потому как не понятно что ты уже пробовал. Если кратко - тебе нужен тестовый scheduler и потом TestObserver. Вот хорошая статья “Unit Testing asynchronous RxJava code (in Kotlin)” by Paulina Sadowska https://link.medium.com/0WwibuzXAS
источник

M

Michael in StartAndroid Ru Testing
Я так понимаю мне нужно тестить что List<Long> не пустой :)
источник

N

Nikolay in StartAndroid Ru Testing
Ну я уж не знаю что тебе нужно тестить :) как по мне - нужно проверить что при входящем Х на выходе будет У. То есть проверить что то, что происходит внутри обсервабла - делает всё верно
источник

M

Michael in StartAndroid Ru Testing
Observable.just(numOfElementLists).map(new Function<Integer, List<Long>>() {
           @Override
           public List<Long> apply(Integer integer) throws Exception {

               arrayList.createList(Lists.ArrayList, numOfElementLists);

               long addToFirstArrayList = arrayList.addFirst(integer, Lists.ArrayList);
               long removeFirstArrayList = arrayList.removeFirst(integer, Lists.ArrayList);

               long addToMiddleArrayList = arrayList.addToMiddle(integer);
               long searchValueArrayList = arrayList.searchByValue(integer);
               long removeMiddleArrayList = arrayList.removeMiddle(integer);

               long addToLastArrayList = arrayList.addToLast(integer, Lists.ArrayList);
               long removeLastArrayList = arrayList.removeLast(integer, Lists.ArrayList);

               linkedList.createList(Lists.LinkedList, numOfElementLists);

               long addToFirstLinkedList = linkedList.addFirst(integer, Lists.LinkedList);
               long removeFirstLinkedList = linkedList.removeFirst(integer, Lists.LinkedList);

               long addToMiddleLinkedList = linkedList.addToMiddle(integer);
               long searchValueLinkedList = linkedList.searchByValue(integer);
               long removeMiddleLinkedList = linkedList.removeMiddle(integer);

               long addToLastLinkedList = linkedList.addToLast(integer, Lists.LinkedList);
               long removeLastLinkedList = linkedList.removeLast(integer, Lists.LinkedList);

               copyOnWriteArrayList.createList(Lists.CopyOnWriteArrayList, numOfElementLists);

               long addToFirstCopyList = copyOnWriteArrayList.addFirst(integer, Lists.CopyOnWriteArrayList);
               long removeFirstCopyList = copyOnWriteArrayList.removeFirst(integer, Lists.CopyOnWriteArrayList);

               long addToMiddleCopyList = copyOnWriteArrayList.addToMiddle(integer);
               long searchValueCopyList = copyOnWriteArrayList.searchByValue(integer);
               long removeMiddleCopyList = copyOnWriteArrayList.removeMiddle(integer);

               long addToLastCopyList = copyOnWriteArrayList.addToLast(integer, Lists.CopyOnWriteArrayList);
               long removeLastCopyList = copyOnWriteArrayList.removeLast(integer, Lists.CopyOnWriteArrayList);

               return Arrays.asList(addToFirstArrayList, addToFirstLinkedList, addToFirstCopyList,
                       addToMiddleArrayList, addToMiddleLinkedList, addToMiddleCopyList,
                       addToLastArrayList, addToLastLinkedList, addToLastCopyList,
                       removeFirstArrayList, removeFirstLinkedList, removeFirstCopyList,
                       removeMiddleArrayList, removeMiddleLinkedList, removeMiddleCopyList,
                       removeLastArrayList, removeLastLinkedList, removeLastCopyList,
                       searchValueArrayList, searchValueLinkedList, searchValueCopyList);
           }
       }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
               .subscribe(new Observer<List<Long>>() {
                   @Override
                   public void onSubscribe(Disposable d) {

                   }

                   @Override
                   public void onNext(List<Long> result) {
                       collectionsList = result;
                       createGrid(collectionsList);
                   }

                   @Override
                   public void onError(Throwable e) {
                       destroyProgressDialog();
                       Log.e(TAG, e.toString());
                       Toast.makeText(getActivity(), e.toString(), Toast.LENGTH_SHORT).show();
                   }

                   @Override
                   public void onComplete() {
                       destroyProgressDialog();
                       Toast.makeText(getActivity(), getString(R.string.observer_collections_complete), Toast.LENGTH_SHORT).show();
                   }
               });
источник

M

Michael in StartAndroid Ru Testing
Вот такой код :)
источник

N

Nikolay in StartAndroid Ru Testing
ну, глядя на этот код - мне очень сложно сказать как его можно протестировать. Я так понимаю что это подсчет времени? То есть это всегда рандомное число. Потому как по мне - это нельзя проверить. Да и нужно ли?
источник
2018 December 13

M

Michael in StartAndroid Ru Testing
Ок, спасибо!
источник

D

Denis in StartAndroid Ru Testing
Ребят, а стандартные экстеншены в котлине (toLong) тоже мокать нужно что ли?
источник

N

Nikolay in StartAndroid Ru Testing
всмысле? зачем их мокать?
источник

D

Denis in StartAndroid Ru Testing
Nikolay
всмысле? зачем их мокать?
у меня есть вот такая функция
источник

D

Denis in StartAndroid Ru Testing
источник

D

Denis in StartAndroid Ru Testing
которой подается "1,2,3,4"
источник

D

Denis in StartAndroid Ru Testing
на при toLong падает с NPE, лол
источник

N

Nikolay in StartAndroid Ru Testing
покажи тест
источник

N

Nikolay in StartAndroid Ru Testing
сложно поверить что падает именно изза этого
источник

D

Denis in StartAndroid Ru Testing
Nikolay
сложно поверить что падает именно изза этого
нашел ошибку, снова any..))
источник
2018 December 16

M

Michael in StartAndroid Ru Testing
Привет! Снова застрял с тестами :( Мне нужно с помощью мокито протестировать что лист не пустой в таком коде:
источник

M

Michael in StartAndroid Ru Testing
Observable.just(numOfElementLists).map(new Function<Integer, List<Long>>() {
           @Override
           public List<Long> apply(Integer integer) throws Exception {

               arrayList.createList(Lists.ArrayList, numOfElementLists);

               long addToFirstArrayList = arrayList.addFirst(integer, Lists.ArrayList);
               long removeFirstArrayList = arrayList.removeFirst(integer, Lists.ArrayList);

               long addToMiddleArrayList = arrayList.addToMiddle(integer);
               long searchValueArrayList = arrayList.searchByValue(integer);
               long removeMiddleArrayList = arrayList.removeMiddle(integer);

               long addToLastArrayList = arrayList.addToLast(integer, Lists.ArrayList);
               long removeLastArrayList = arrayList.removeLast(integer, Lists.ArrayList);

               linkedList.createList(Lists.LinkedList, numOfElementLists);

               long addToFirstLinkedList = linkedList.addFirst(integer, Lists.LinkedList);
               long removeFirstLinkedList = linkedList.removeFirst(integer, Lists.LinkedList);

               long addToMiddleLinkedList = linkedList.addToMiddle(integer);
               long searchValueLinkedList = linkedList.searchByValue(integer);
               long removeMiddleLinkedList = linkedList.removeMiddle(integer);

               long addToLastLinkedList = linkedList.addToLast(integer, Lists.LinkedList);
               long removeLastLinkedList = linkedList.removeLast(integer, Lists.LinkedList);

               copyOnWriteArrayList.createList(Lists.CopyOnWriteArrayList, numOfElementLists);

               long addToFirstCopyList = copyOnWriteArrayList.addFirst(integer, Lists.CopyOnWriteArrayList);
               long removeFirstCopyList = copyOnWriteArrayList.removeFirst(integer, Lists.CopyOnWriteArrayList);

               long addToMiddleCopyList = copyOnWriteArrayList.addToMiddle(integer);
               long searchValueCopyList = copyOnWriteArrayList.searchByValue(integer);
               long removeMiddleCopyList = copyOnWriteArrayList.removeMiddle(integer);

               long addToLastCopyList = copyOnWriteArrayList.addToLast(integer, Lists.CopyOnWriteArrayList);
               long removeLastCopyList = copyOnWriteArrayList.removeLast(integer, Lists.CopyOnWriteArrayList);

               return Arrays.asList(addToFirstArrayList, addToFirstLinkedList, addToFirstCopyList,
                       addToMiddleArrayList, addToMiddleLinkedList, addToMiddleCopyList,
                       addToLastArrayList, addToLastLinkedList, addToLastCopyList,
                       removeFirstArrayList, removeFirstLinkedList, removeFirstCopyList,
                       removeMiddleArrayList, removeMiddleLinkedList, removeMiddleCopyList,
                       removeLastArrayList, removeLastLinkedList, removeLastCopyList,
                       searchValueArrayList, searchValueLinkedList, searchValueCopyList);
           }
       }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
               .subscribe(new Observer<List<Long>>() {
                   @Override
                   public void onSubscribe(Disposable d) {

                   }

                   @Override
                   public void onNext(List<Long> result) {
                       collectionsList = result;
                       createGrid(collectionsList);
                   }

                   @Override
                   public void onError(Throwable e) {
                       destroyProgressDialog();
                       Log.e(TAG, e.toString());
                       Toast.makeText(getActivity(), e.toString(), Toast.LENGTH_SHORT).show();
                   }

                   @Override
                   public void onComplete() {
                       destroyProgressDialog();
                       Toast.makeText(getActivity(), getString(R.string.observer_collections_complete), Toast.LENGTH_SHORT).show();
                   }
               });
источник

M

Michael in StartAndroid Ru Testing
Хелп плз!
источник