【发布时间】:2017-11-10 17:26:45
【问题描述】:
Android Studio 3.0
RxJava-1
对以下代码进行单元测试,该代码将返回单个结果,其结果可能为真或假,具体取决于 findLastMessage 是否返回 null。
public Single<Boolean> hasLocalStorage() {
return Single.fromCallable(() ->
chatStorageHelper.findLatestMessage() != null);
}
在我的测试用例中,我有以下内容:
storageHelper 是一个模拟,将在这种情况下返回一个非空值
@Test
public void testHasLocalStorage_hasLocalStorage_returnTrue() {
when(storageHelper.findLatestMessage()).thenReturn(new DBMessage());
final Single<Boolean> result = Single.just(true);
assertThat(localRepository.hasLocalStorage(), is(result));
}
但是,测试总是因为这个而失败:
Expected :is <rx.internal.util.ScalarSynchronousSingle@712cfb63>
Actual :<rx.Single@32e54a9d>
当我检查Single.just(true) 返回的内容如下:
public static <T> Single<T> just(final T value) {
return ScalarSynchronousSingle.create(value);
}
调用 ScalarSynchronousSingle。我想知道如何更改我的测试用例,以便 rx.Single 从 Single.just(true) 返回?
非常感谢您的任何建议,
【问题讨论】:
标签: java android unit-testing rx-java