Skip to content

Instantly share code, notes, and snippets.

@dtrailin
dtrailin / SimpleObservableTest.java
Last active April 21, 2016 16:50
Unit Testing with RxAndroid and RxJava
Object o = myObservable.toBlocking().first();
assertThat(o).isNotNull()
List<T> myList = myObservable.toList().toBlocking().single()
assertThat(myList.isEmpty()).is(false)
@Test
public void testUsingTestSubscriber() throws Exception {
TestSubscriber<Integer> testSubscriber = new TestSubscriber<>();
Observable.just(1).subscribe(testSubscriber);
testSubscriber.assertNoErrors();
testSubscriber.assertReceivedOnNext(Arrays.asList(1));
}
@Test
public void testUsingTestSchedulers() throws Exception {
TestScheduler scheduler = new TestScheduler();
TestSubscriber<Long> testSubscriber = new TestSubscriber<>();
Observable.interval(1, TimeUnit.SECONDS, scheduler).take(5).observeOn(scheduler).subscribeOn(scheduler).subscribe(testSubscriber);
testSubscriber.assertNoValues();
scheduler.advanceTimeBy(2, TimeUnit.SECONDS);
testSubscriber.assertReceivedOnNext(Arrays.asList(0L, 1L));
scheduler.advanceTimeBy(10, TimeUnit.SECONDS);
testSubscriber.assertCompleted();
public class TestApplication extends BaseApplication implements TestLifecycleApplication {
@Override
public void onCreate() {
setupRxSchedulers();
super.onCreate();
}
private void setupRxSchedulers() {
RxJavaTestPlugins.resetPlugins();
package rx.plugins;
public class RxJavaTestPlugins extends RxJavaPlugins {
RxJavaTestPlugins() {
super();
}
public static void resetPlugins(){
getInstance().reset();
}
val school : School = null
if (school != null && school.students != null){
doSomething(school.students.get(“billy”))
}
school?.students?.let { doSomething(it.get(“billy”)) }
if (x is String){
println(x)
}
// can be replaced with
(x as? String)?.let { println(x) }
val parent = node.getParent() ?: return null
val name = node.getName() ?: throw IllegalArgumentException("...")