Это не то, что вообще не нужно тестировать с тестовыми подписчиками RxJava (в зависимости от остальной части кода).
Помните - вы не хотите проверять внутреннее состояние или, по крайней мере, делаете это как можно реже. Внутреннее состояние и классовая структура могут меняться и, вероятно, будут часто меняться. Поэтому не рекомендуется проверять, назначен ли пользователь в поле.
Таким образом, вы могли бы сделать Completable
блокировку и затем установить состояние (скажем, серверного) класса сервера, но Я бы настоятельно не рекомендовал делать это следующим образом:
server.setAuthToken(AuthToken("token"))
.blockingAwait()
assertThat(server.user, equalTo(expectedUser))
То, что вы хотите проверить, это поведение.
Вы, вероятно, не назначаете пользователя для поля только ради наличия некоторых полей. Вы делаете это, чтобы использовать информацию от пользователя позже. Поэтому сначала вы должны вызвать setAuthToken и , а затем вызвать функцию, которая действительно использует информацию от пользователя. Затем вы можете утверждать, что использованная информация верна и исходит от правильного пользователя.
Таким образом, примеры тестов (в зависимости от класса) могут выглядеть следующим образом:
server.setAuthToken(AuthToken("token"))
.andThen(server.sendRequest())
.blockingAwait()
// assert if correct user info was sent
или
server.setAuthToken(AuthToken("token"))
.andThen(server.sendRequest())
.test()
// assert if correct user info was sent