Search code examples
scalascalatest

Cannot Find GeneratorDrivenPropertyChecks Trait


I have these test dependencies defined

/ Test Dependencies
lazy val wiremock             = "com.github.tomakehurst"      % "wiremock-jre8"             % "2.25.1"
lazy val playTest             = "com.typesafe.play"          %% "play-test"                 % "2.8.1"
lazy val scalaTestPlusPlay    = "org.scalatestplus.play"     %% "scalatestplus-play"        % "5.1.0"
lazy val mockito              = "org.mockito"                %% "mockito-scala"             % "1.10.2"
lazy val scalamock            = "org.scalamock"              %% "scalamock"                 % "4.4.0"
lazy val scalacheck_shapeless = "com.github.alexarchambault" %% "scalacheck-shapeless_1.14" % "1.2.3"
lazy val scalatest            = "org.scalatest"              %% "scalatest"                 % "3.1.1"

But I cannot find this trait to mix into my test spec class: GeneratorDrivenPropertyChecks. I am not sure what I am missing here in terms of dependencies. Under org.scalatest.prop I don't see this trait. I only see TableDrivenPropertyChecks.


Solution

  • GeneratorDrivenPropertyChecks seems to have been removed in ScalaTest 3.1.0

    We made it private so that it would not hold up the 3.1.0 release any longer. I wanted to investigate a better way to integrate shrinking, as has been done by tools such as Hedgehog. The 3.2.0 release we wanted to be exactly the same as 3.1.0 except for modularization. After that we plan to complete and release ScalaTest's Generator. Meanwhile we figured everyone would continue to use ScalaCheckDrivenPropertyChecks and Gen, which is available here:

    https://github.com/scalatest/scalatestplus-scalacheck

    Instead try using ScalaCheckDrivenPropertyChecks like so

    import org.scalacheck.Gen
    import org.scalatest.flatspec.AnyFlatSpec
    import org.scalatest.matchers.should.Matchers
    import org.scalatestplus.scalacheck.ScalaCheckDrivenPropertyChecks
    
    class HelloSpec extends AnyFlatSpec with Matchers with ScalaCheckDrivenPropertyChecks {
      "ScalaCheckDrivenPropertyChecks" should "provide forAll" in {
        forAll(Gen.choose(1, 100)) { i =>
          i shouldBe i
        }
      }
    }
    

    where

    libraryDependencies ++= Seq(
      "org.scalatestplus" %% "scalacheck-1-14" % "3.1.1.1" % Test,
      "org.scalatest" %% "scalatest" % "3.1.1" % Test
    )