Also ich ein Scala UnitTest mit ScalaTest/ScalaCheck für eine lokale Cache-Implementierung erstellen, und ich muss die Funktionalität testen, dass wenn ein Ereignis mit einer ID kommt, die wir bereits gesehen haben, aktualisiert es diesen Wert, anstatt ein ganz neues erstellen Eintrag im Cache.Mit ScalaCheck forAll, wie setze ich einen Parameter der Fallklasse und lassen Sie den Rest beliebig erzeugt werden?
Ich bin mir jetzt sicher, wie dies zu tun, so dass die gleiche ID für jede Iteration der Schleife generiert wird. Siehe Code unten.
forAll { arbitraryEvent: ClientFacingExecution =>
val unmatchedEvent = ClientFacingExecutionEnriched(arbitraryFoExec)
val expectedId = unmatchedEvent.clientFacingExecution.id
........................................
........................................
........................................
cacheUnderTest.records should have size 1
}
Wie kann ich sicherstellen, dass expectedId wird immer das gleiche sein, während der Rest des unmatchedEvent regeneriert werden.