2016-03-25 32 views
0

specs2 ve scala kullanarak bu yöntem çıktısının beklendiği gibi olduğunu test ediyorum. Test aşağıdaki gibidir:Scala özellikleri2 Hiçbiri eşit değil Yok

call() must beEqualTo(expectedCall) 

expectedCall durumda sınıfının bir örneğidir - call() dönüşleri ile aynı.

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

nasıl None gelip None eşit değildir: i testleri çalıştırdığınızda i vaka sınıfının tanımıdır

[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) 

hata aşağıdaki almak?

+0

'None' aslında eşit olmayan bir şey olduğundan emin misiniz? Belki bu -500.12' bir sorundur? Val val = deneyin(); resEqualTo (res) olmalıdır –

+0

Eşit olmayanı göstermeye çalışmak için 'toString' çıktısını kullanıyor ancak bulamıyor. Belki de 'RecordMsg',' AmountMsg' ve 'ErrorMsg' için tip tanımlarını paylaşabilirsiniz. –

+0

Her sınıf özniteliğini ayrı ayrı test etmeye çalıştım ve gerçekten tek bir özelliğin hatasıdır - özellikle bir tarih. 'ToString' çıkışı beni şaşırttı. – kurochenko

cevap

0

Her sınıf özniteliğini farklı bir satırda sınamanızı öneririz, böylece sorundan emin olun. Sorun olması için None comparsion'ı zor buluyorum. 2 None aynı türden seçenekler olmadıkça?