[−][src]Crate nafta
Nafta
Creates temporary SQLite database for testing using diesel.
Minimal example
// Database extern crate diesel; #[cfg(test)] mod tests { #[test] fn test_get_user() { // Creates empty SQLite database in temporary folder let test_db = nafta::sqlite::TestDb::new(); let pool = std::sync::Arc::new(test_db.pool); // Use code to work with the pool // You can check that database is removed let path = test_db.db_path.to_owned(); drop(test_db); assert!(!path.exists()); } }
Example with migration
ⓘThis example is not tested
// Database extern crate diesel; #[macro_use] extern crate diesel_migrations; // This macro from `diesel_migrations` defines an `embedded_migrations` module // containing a function named `run`. This allows the example to be run and // tested without any outside setup of the database. embed_migrations!("migrations"); #[cfg(test)] mod tests { #[test] async fn test_get_user() { let test_db = nafta::sqlite::TestDb::new(); let conn = test_db .conn() .expect("Not possible to get pooled connection"); embedded_migrations::run(&conn).expect("Migration not possible to run"); // Test let all_user = db::users::get_all_users(test_db.pool); assert!(all_user.is_ok()); } }
Modules
sqlite |