class MyServiceSpec extends DefaultRunnableSpec {
def spec = suite("MyService")(
testM("test myService") {
for {
_ <- ZIO.effectTotal(println("Running test..."))
result <- myService.doSomething().provide(TestEnvironment)
} yield assert(result, equalTo("expected result"))
}
)
}
object MyService {
def doSomething(): ZIO[TestEnvironment, Throwable, String] = ???
}
case class TestEnvironment() {
// Test environment configuration
}
object Main extends App {
val myServiceSpec = new MyServiceSpec
val runner = TestRunner()
runner.run(myServiceSpec)
}