zio-test-scalacheck

Members list

Packages

This package provides helpers to integrate some ScalaCheck primitives to their ZIO equivalents. Currently available helpers:

This package provides helpers to integrate some ScalaCheck primitives to their ZIO equivalents. Currently available helpers:

  • Converting ScalaCheck Generators to ZIO Generators
  • Asserting a ScalaCheck Prop with ZIO
  • Asserting a ScalaCheck Properties with ZIO

Generators

This functionality converts legacy ScalaCheck generators to ZIO Test generators to support upgrading to ZIO Test without having to reimplement existing generators. To use it import this module and then call toGenZIO on any existing ScalaCheck generator. For example:

import org.scalacheck.Arbitrary

import zio._
import zio.test._
import zio.test.scalacheck._

val anyInt: Gen[Any, Int] =
 Arbitrary.arbitrary[Int].toGenZIO

Asserting ScalaCheck Prop and Properties

This functionality generates ZIO Assertions from either ScalaCheck Prop or Properties. This helps with integrating other libraries that provide ScalaCheck properties as helpers, i.e. cats-laws.

Prop example:

import org.scalacheck.Prop
import org.scalacheck.Test.{ Parameters => ScalaCheckParameters }

import zio._
import zio.test._
import zio.test.scalacheck._

val prop: Prop = Prop.forAll { (n: Int, m: Int) =>
 n + m == m + n
}
val resultDefault: TestResult = prop.assertZIO()

val resultWithCustomizations: TestResult =
 prop.assertZIO("My Prop Name", ScalaCheckParameters.default.withMaxSize(10))

Properties example:

import org.scalacheck.{ Prop, Properties }
import org.scalacheck.Test.{ Parameters => ScalaCheckParameters }

import zio._
import zio.test._
import zio.test.scalacheck._

object MyProperties extends Properties("MyProperties") {
 property("myProp") = Prop.forAll { (n: Int, m: Int) =>
   n + m == m + n
 }
}

* val resultDefault: TestResult = MyProperties.assertZIO()

// Beware that we can't provide a custom name here, it will be
// taken from the `Properties` name parameter
val resultWithCustomizations: TestResult =
 MyProperties.assertZIO(ScalaCheckParameters.default.withMaxSize(10))

Attributes

In this article