4
나는 다음과 같이 안드로이드에 RxJava을 사용하여 새 파일을 만들려고 오전 :RxJava file.createNewFile() 항상 반환 TRUE
public Observable<Boolean> createRx(String name) {
return Observable.just(name)
.map(new Func1<String, Boolean>() {
@Override
public Boolean call(String s) {
File newFile = new File(localPath + "/" + s);
try {
return newFile.createNewFile();
} catch (IOException e) {
throw Exceptions.propagate(e);
}
}
});
}
일반적으로 새 파일을 만들려면 다음과 같이 :
public boolean createNonRx(String name) {
boolean ret = false;
try {
File newFile = new File(localPath + "/" + name);
ret = newFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
return ret;
}
내 JUnitTest 코드와 TestReport :
@Test
public void testCreateRx() throws Exception { // FAIL!
TestSubscriber<Boolean> testSubscriber = new TestSubscriber<>();
source.createRx("JunitTest_Create_Rx").subscribe(testSubscriber);
testSubscriber.assertNoErrors();
testSubscriber.assertReceivedOnNext(Arrays.asList(Boolean.TRUE)); //PASS!
source.createRx("JunitTest_Create_Rx").subscribe(testSubscriber);
testSubscriber.assertNoErrors();
testSubscriber.assertReceivedOnNext(Arrays.asList(Boolean.FALSE)); //FAIL!
//expected to be [false] (Boolean) but was: [true] (Boolean)
}
@Test
public void testCreateNonRx() { // PASS!
boolean fstRet = source.createNonRx("JunitTest_LocalDataSource_Create_Non_Rx");
assertTrue(fstRet);
boolean secRet = source.createNonRx("JunitTest_LocalDataSource_Create_Non_Rx");
assertFalse(secRet);
}
내가 RxJava에 초보자입니다, 내 코드에 문제가?
기존 파일을 만들려고 할 때 createRx()를 호출하면 TRUE가 반환되는 이유는 무엇입니까?
도움 주셔서 감사합니다.