sqlitecpp-testing-practices
GoogleTest patterns and testing practices for SQLiteCpp test coverage and structure.
来源信息
- 仓库
- SRombauts/SQLiteCpp
- 最近来源活动
- 2026年5月19日 21:46
- 检测到的 SKILL.md 语言
- 英语
- 星标
- 2,789
- 分支
- 575
安装方式
默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。
检查来源文件
决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。
正在显示 SKILL.md
SKILL.md
来源说明 · 只读预览- 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`
在 GitHub 查看