Ich bin neu bei Scalatest und Scalamock, aber ich habe es geschafft, einige Tests zu schreiben. Wenn jedoch Futures in meinen Tests verwendet werden (spöttische Rückmeldungen und in Klassen selbst), scheinen Tests nicht zu bestehen.Scalatest und Scalamock, Tests passieren nicht, wenn Futures beteiligt sind
Ich habe ein minimales Arbeitsbeispiel geschrieben, das auf GitHub gehostet wird. Es gibt zwei Zweige, "Master" beinhaltet Futures und "withNoFutures" nicht.
Ich habe die Tests in beiden Zweigen mehrmals durchgeführt und die Tests in "Master" bestanden manchmal die Tests in "withNoFutures" immer. Kann mir jemand helfen, die Tests mit Futures bestanden zu bekommen?
Github Repo: https://github.com/vicaba/scalatestNotWorking/tree/master
Der Fehler Test Code wie folgt aussieht:
package example
import org.scalamock.scalatest.MockFactory
import org.scalatest.{BeforeAndAfter, FunSuite}
import scala.concurrent.Future
class SomeServiceTest extends FunSuite with BeforeAndAfter with MockFactory {
var otherService: SomeOtherService = _
var service: SomeService = _
before {
otherService = mock[SomeOtherService]
service = mock[SomeService]
}
after {
otherService = null
service = null
}
test("a first test works") {
otherService.execute _ expects() once()
service.execute _ expects(*) returning Future.successful(true) once()
SomeService.execute(service, otherService)
}
// Why this test does not work?
test("a second test works") {
// Copy paste the code in the first test
}
}
Wenn ich den Code ändern, dass nur ein boolean zurückzukehren (die entsprechenden implementierten Klassen zu ändern), alles funktioniert gut. Ansonsten ist das Ergebnis undeterministic