AutoRollback

Automatic Rollback support for specs2.

If you want to test this Member object,

import scalikejdbc._

object Member {
 def create(id: Long, name: String)(implicit session: DBSession = AutoSession) {
   SQL("insert into members values (?, ?)".bind(id, name).update.apply()
 }
}

Use scalikejdbc.specs2.AutoRollback like this:

import org.specs2.Specification
import scalikejdbc.specs2.AutoRollback

class MemberSpec extends Specification { def is =

 "Member should create a new record" ! autoRollback().create ^
 "LegacyAccount should create a new record" ! db2AutoRollback().create ^ end

 case class autoRollback() extends AutoRollback {
   def create = this {
     Member.create(1, "Alice")
     Member.find(1).isDefined must beTrue
   }
 }

 case class db2AutoRollback() extends AutoRollback {
   override def db() = NamedDB('db2).toDB
   def create = this {
     LegacyAccount.create(2, "Bob")
     LegacyAccount.find(2).isDefined must beTrue
   }
 }
}
trait LoanPattern
trait After
trait Context
trait Scope
trait Scope
class Object
trait Matchable
class Any

Type members

Inherited types

type Closable = { def close(): Unit; }
Inherited from
LoanPattern

Value members

Inherited methods

override def after: Any
Definition Classes
Inherited from
AutoRollbackLike
def andThen(a: After): After
Inherited from
After
def apply[T](a: => T)(implicit AsResult[T]): Result
Inherited from
After
def compose(a: After): After
Inherited from
After
def db(): DB

Creates a scalikejdbc.DB instance.

Creates a scalikejdbc.DB instance.

Returns

DB instance

Inherited from
AutoRollbackLike
def fixture(implicit session: DBSession): Unit

Prepares database for the test.

Prepares database for the test.

Value Params
session

db session implicitly

Inherited from
AutoRollbackLike
def futureUsing[R <: Closable, A](resource: R)(f: R => Future[A])(implicit ec: ExecutionContext): Future[A]

Guarantees a Closeable resource will be closed after being passed to a block that takes the resource as a parameter and returns a Future.

Guarantees a Closeable resource will be closed after being passed to a block that takes the resource as a parameter and returns a Future.

Inherited from
LoanPattern
def using[R <: Closable, A](resource: R)(f: R => A): A
Inherited from
LoanPattern

Inherited fields

val _db: DB
Inherited from
AutoRollbackLike

Implicits

Inherited implicits

implicit val session: DBSession
Inherited from
AutoRollbackLike