このテストでは、これらの2つの文字列のリストは同じですが、assertValueメソッドはメモリアドレスが異なるため、assertValueメソッドが等しいとは言えません。配列内の実際の文字列に対して、どうすればテストできますか?次のようになります。RxJava TestObserverを使用して2つの文字列リストをアサートする方法は?
@Test
public void shouldReturnStringList() {;
String[] strings = {"Hello", "World"};
String[] strings2 = {"Hello", "World"};
Observable<String[]> stringsObservable = Observable.just(strings);
TestObserver<String[]> testObserver = new TestObserver<>();
stringsObservable.subscribe(testObserver);
testObserver.assertValue(strings2);
}
失敗したテストメッセージ:
java.lang.AssertionError: Expected: [Ljava.lang.String;@5ebec15 (class: String[]), Actual: [Ljava.lang.String;@21bcffb5 (class: String[]) (latch = 0, values = 1, errors = 0, completions = 1)