Se si abbinano elenchi o mappe o altre strutture complesse, è utile vedere la differenza tra ciò che viene dato e ciò che è previsto. Per esempio:Come mostrare la differenza tra ciò che viene dato e previsto in ScalaTest?
Map("a" -> 1, "b" -> 2, "c" -> 3) should equal Map("a" -> 1, "b" -> 5, "c" -> 3)
// ScalaTest output:
[info] Map("a" -> 1, "b" -> 2, "c" -> 3) did not equal Map("a" -> 1, "b" -> 5, "c" -> 3) (Test.scala)
[info] org.scalatest.exceptions.TestFailedException:
[info] ...
Si dovrà manualmente sguardo attraverso entrambe le mappe per trovare la differenza tra di loro, il più grande la vostra collezione diventa più difficile diventa.
Nel RSpec d'altra parte si otterrebbe:
expect({a: 1, b: 2, c: 3}).to match({a: 1, b: 5, c: 3})
// RSpec output:
Failure/Error: it { expect({a: 1, b: 2, c: 3}).to match({a: 1, b: 5, c: 3})}
expected {:a=>1, :b=>2, :c=>3} to match {:a=>1, :b=>5, :c=>3}
Diff:
@@ -1,4 +1,4 @@
:a => 1,
-:b => 5,
+:b => 2,
:c => 3,
# ./spec/test_spec.rb:2:in `block (2 levels) in <top (required)>'
E 'possibile avere qualcosa di simile con ScalaTest?
Mi chiedo se ScalaTest 3.0 (ora in fase di snapshot) fornirebbe miglioramenti a questo. Un video qui -> https://skillsmatter.com/skillscasts/6021-scalatest-and-scalactic-3-0 – akauppi