What problem does it solve? The native sqflite plugin cannot run in dart test or flutter test because it requires an iOS/Android device or emulator. This Skill shows how to use package:sqflite_common_ffi to run real SQLite databases on the developer machine and CI runners, so database code is tested against SQLite itself instead of mocks. ## Core Features & Use Cases - FFI-based test factory: Initialize sqfliteFfiInit() and open inMemoryDatabasePath with databaseFactoryFfi for fast, isolated unit tests. - Global factory replacement: Set databaseFactory = databaseFactoryFfi so existing code calling the global openDatabase() works unchanged in flutter test. - Widget test support: Use databaseFactoryFfiNoIsolate inside testWidgets to avoid hangs caused by the fake async zone of WidgetTester. - Use Case: Write a migration test that opens a file-based database at version 1, reopens it at version 2 with onUpgrade, and asserts the new column exists—all on a Linux CI runner with no emulator. ## Quick Start Write a Dart unit test that initializes sqfliteFfiInit, opens an in-memory database with databaseFactoryFfi, inserts a row, and asserts the query result.