Спецификации Scala2 None не равно None

Я проверяю, что вывод метода соответствует ожиданиям, используя specs2 и scala. Тест выглядит следующим образом:

call() must beEqualTo(expectedCall)

expectedCall является экземпляром класса case - так же, как возвращает call(). Когда я запускаю тесты, я получаю следующую ошибку

[error]      'CustomScriptParsedOutput(0,Some(List(IntegrationRecordMsg(-500.12,2016-03-10T18:20:00.000+01:00,Some(some note, CZ),Some(CZK),Some(List(WITHDRAWAL))))),None,None): models.CustomScriptParsedOutput'
[error]
[error]       is not equal to
[error]
[error]      'CustomScriptParsedOutput(0,Some(List(IntegrationRecordMsg(-500.12,2016-03-10T18:20:00.000+01:00,Some(some note, CZ),Some(CZK),Some(List(WITHDRAWAL))))),None,None): models.CustomScriptParsedOutput' (CustomTest.scala:53)
[error] Actual:   ...None)
[error] Expected: ...None)

где определение класса случая:

case class CustomScriptParsedOutput(
    code: Int, 
    records: Option[List[RecordMsg]] = None, 
    amount: Option[AmountMsg] = None, 
    error: Option[ErrorMsg] = None
)

Почему None не равно None?


person kurochenko    schedule 25.03.2016    source источник
comment
Вы уверены, что None действительно не равно? Может быть, проблема в том, что -500.12? Попробуйте val res = call(); res must beEqualTo (res)   -  person Łukasz    schedule 25.03.2016
comment
Он использует вывод toString, чтобы попытаться показать, что не равно, но не может его найти. Возможно, поделитесь определениями типов для RecordMsg, AmountMsg и ErrorMsg.   -  person Michael Zajac    schedule 25.03.2016
comment
Пытался проверить каждый атрибут класса отдельно, и это действительно вина только одного атрибута, а именно даты. Вывод toString меня смутил.   -  person kurochenko    schedule 25.03.2016
comment
Да, мне нужно удалить сообщение в этом случае. Извините, я создал для этого задачу: github.com/etorreborre/specs2/issues/463 .   -  person Eric    schedule 25.03.2016
comment
Эта проблема устранена.   -  person Eric    schedule 28.03.2016


Ответы (1)


Я бы порекомендовал вам проверить каждый из атрибутов класса в отдельной строке, чтобы убедиться в наличии проблемы. Я считаю, что сравнение None не может быть проблемой. Разве 2 None не являются однотипными вариантами?

person pedrorijo91    schedule 26.03.2016