Skip to main content

sqlitecpp-testing-practices

GoogleTest patterns and testing practices for SQLiteCpp test coverage and structure.

Source facts

Repository
SRombauts/SQLiteCpp
Last source activity
May 19, 2026 at 21:46
Detected SKILL.md language
English
Stars
2,789
Forks
575

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
sqlitecpp-testing-practices
description
GoogleTest patterns and testing practices for SQLiteCpp test coverage and structure.
# SQLiteCpp Testing Practices ## Scope - Uses GoogleTest (system if found, otherwise `googletest/` fallback). - Test files live in `tests/*_test.cpp` (see `tests/Database_test.cpp`). - File headers use `@ingroup tests`. ## Test File Structure ```cpp #include <gtest/gtest.h> #include <SQLiteCpp/Database.h> TEST(DatabaseTest, CanOpenReadWriteDatabase) { // Arrange: setup test database SQLite::Database db(":memory:", SQLite::OPEN_READWRITE | SQLite::OPEN_CREATE); // Act: perform operation db.exec("CREATE TABLE test (id INTEGER PRIMARY KEY)"); // Assert: verify behavior EXPECT_EQ(1, db.exec("INSERT INTO test DEFAULT VALUES")); } ``` ## Adding a New Test File - Create `tests/NewClass_test.cpp`. - Register it in `CMakeLists.txt` under `SQLITECPP_TESTS`. - Register it in `meson.build` under `sqlitecpp_test_srcs`. ## Common Patterns - Prefer `:memory:` databases when possible. - Use file-based databases when testing file I/O behavior (see `tests/Database_test.cpp`). - Use `TEST()` for independent tests; use `TEST_F()` only when a shared fixture is needed. ## Running Tests ```bash # CMake (from build dir) ctest --output-on-failure bin/SQLiteCpp_tests --gtest_filter=Database.* # Meson meson test -C builddir meson test -C builddir --test-args="--gtest_filter=Database.*" ``` ## Canonical References - Test style: `tests/Database_test.cpp` - CMake test list: `CMakeLists.txt` (`SQLITECPP_TESTS`) - Meson test list: `meson.build` (`sqlitecpp_test_srcs`) ## Cross-References - Workflow checklist: `sqlitecpp-workflow` - Build configuration: `sqlitecpp-build-cmake`, `sqlitecpp-build-meson`
View on GitHub