Как протестировать Optional?

class CompanyCommandTest {
private val companyId = 3L
private val company = createEmptyCompany(companyId)

@Before
fun setUp() {
    setupRxSchedulersForTests()
}

@Test
fun takeFromStorage() {

val storage = mock<CompanyStorage> {
    on { getcompany(any()) } doReturn company
}

val command = CompanyCommand(storage)

command.getCompany(companyId).test().assertValue(company.toOptional())
verify(storage).getCompany(companyId) 
}
}

В данном тесте ошибка в методе assertValue, ошибка заключается в том, что command.getSurvey(surveyId) не является равным survey.toOptimal. Предполагаю что ошибка в том, что объекты ссылаются на разные участки памяти (хотя поля идентичны). Поправьте меня если не прав и каким образом тестировать такой метод?

createEmptyCompany() - это метод который возвращает объект Company

Метод тест находится в классе Single введите сюда описание изображения


Ответы (1 шт):

Автор решения: Komdosh

Так понимаю вопрос в том, как сравнить значения в объекте типа Optional. По сути Optional - является некоторой коробкой предоставляемая стандартной библиотекой, не нужно тестировать сам Optional, необходимо сравнивать значения внутри этой коробки.

observer.test().assertValue { actualValue-> expectedValue.equals(actualValue) }

→ Ссылка