Skip to main content

TestSupport

Trait TestSupport 

Source
pub trait TestSupport: Database {
    // Required methods
    fn test_context(
        args: &TestArgs,
    ) -> Pin<Box<dyn Future<Output = Result<TestContext<Self>, Error>> + Send + '_>>;
    fn cleanup_test(
        db_name: &str,
    ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + '_>>;
    fn cleanup_test_dbs(    ) -> Pin<Box<dyn Future<Output = Result<Option<usize>, Error>> + Send>>;
    fn snapshot(
        conn: &mut Self::Connection,
    ) -> Pin<Box<dyn Future<Output = Result<FixtureSnapshot<Self>, Error>> + Send + '_>>;

    // Provided method
    fn db_name(args: &TestArgs) -> String { ... }
}

Required Methods§

Source

fn test_context( args: &TestArgs, ) -> Pin<Box<dyn Future<Output = Result<TestContext<Self>, Error>> + Send + '_>>

Get parameters to construct a Pool suitable for testing.

This Pool instance will behave somewhat specially:

  • all handles share a single global semaphore to avoid exceeding the connection limit on the database server.
  • each invocation results in a different temporary database.

The implementation may require DATABASE_URL to be set in order to manage databases. The user credentials it contains must have the privilege to create and drop databases.

Source

fn cleanup_test( db_name: &str, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + '_>>

Source

fn cleanup_test_dbs() -> Pin<Box<dyn Future<Output = Result<Option<usize>, Error>> + Send>>

Cleanup any test databases that are no longer in-use.

Returns a count of the databases deleted, if possible.

The implementation may require DATABASE_URL to be set in order to manage databases. The user credentials it contains must have the privilege to create and drop databases.

Source

fn snapshot( conn: &mut Self::Connection, ) -> Pin<Box<dyn Future<Output = Result<FixtureSnapshot<Self>, Error>> + Send + '_>>

Take a snapshot of the current state of the database (data only).

This snapshot can then be used to generate test fixtures.

Provided Methods§

Source

fn db_name(args: &TestArgs) -> String

Generate a unique database name for the given test path.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§