Crates
/
fission-test
fission-test
v0.10.0
Headless and runtime testing helpers for Fission applications
Install
cargo add fission-test
Copy
Platform support
Declared by the crate author and captured when this directory was generated.
Android
Not declared
iOS
Not declared
Linux
Supported
macOS
Supported
Windows
Supported
Web
Not declared
Terminal
Not declared
Static site
Not declared
Server-rendered
Not declared
Package metadata
crates.io
View package
Documentation
Not provided
Repository
Open link
License
MIT
Latest version
0.10.0
Downloads
260
Last updated
2026-08-02T15:42:34.457817Z
Categories
development-tools::testing
gui
Keywords
cross-platform
fission
headless
testing
ui-testing
Published versions
0.10.0
0.9.2
0.9.1
0.9.0
0.8.0
0.7.0
0.6.3
0.6.2
0.6.1
0.5.1
0.5.0
0.4.1
Dependencies
Dependency metadata is not indexed yet.
README

fission-test

Headless testing framework for Fission widgets.
fission-test lets you build, lay out, render, and interact with Fission widget trees without creating a window or GPU context. It provides HeadlessApp for lightweight lifecycle tests andTestDriver for full interaction-driven tests -- tapping buttons, typing text, scrolling, and asserting on visible output -- all running in-process with a mock text measurer and aTestRenderer that captures the display list.

Key types

Type
Description
HeadlessApp<S>
Owns an GlobalState, root widget, layout engine, and mock text measurer. Call tick() to advance the clock.
TestDriver<S>
High-level driver wrapping a TestHarness. Provides query methods (find_text, find_role, get_all_visible_text) and interaction methods (tap_text, type_text, press_key, scroll_down, scroll_to_text).
TestRenderer
A no-op Renderer implementation that stores the last DisplayList for inspection.
TextMatch
A query result containing the matched text, bounding rect, and node ID.
SemanticMatch
A query result containing the matched accessibility role, label, bounds, and node ID.

Usage example

use fission_test::{TestDriver, TestHarness};

let harness = TestHarness::new(MyState::default(), MyWidget);
let mut driver = TestDriver::new(harness);

driver.set_viewport(800.0, 600.0);
driver.pump()?;

// Assert text is rendered
driver.assert_text_visible("Hello, world!");

// Simulate a tap on a button
driver.tap_text("Submit")?;

// Verify state change
driver.assert_text_visible("Submitted!");

Environment variables

Variable
Effect
FISSION_TEST_USE_MOCK_MEASURER=1
Force the mock text measurer (10 px per char, 20 px line height).
FISSION_TEST_MEASURER=mock
Same as above.

Status

Supported -- actively used for widget and integration tests across the Fission workspace.

License

MIT -- see the Fission repository for full documentation at https://fission.rs.
README

fission-test

Headless testing framework for Fission widgets.
fission-test lets you build, lay out, render, and interact with Fission widget trees without creating a window or GPU context. It provides HeadlessApp for lightweight lifecycle tests andTestDriver for full interaction-driven tests -- tapping buttons, typing text, scrolling, and asserting on visible output -- all running in-process with a mock text measurer and aTestRenderer that captures the display list.

Key types

Type
Description
HeadlessApp<S>
Owns an GlobalState, root widget, layout engine, and mock text measurer. Call tick() to advance the clock.
TestDriver<S>
High-level driver wrapping a TestHarness. Provides query methods (find_text, find_role, get_all_visible_text) and interaction methods (tap_text, type_text, press_key, scroll_down, scroll_to_text).
TestRenderer
A no-op Renderer implementation that stores the last DisplayList for inspection.
TextMatch
A query result containing the matched text, bounding rect, and node ID.
SemanticMatch
A query result containing the matched accessibility role, label, bounds, and node ID.

Usage example

use fission_test::{TestDriver, TestHarness};

let harness = TestHarness::new(MyState::default(), MyWidget);
let mut driver = TestDriver::new(harness);

driver.set_viewport(800.0, 600.0);
driver.pump()?;

// Assert text is rendered
driver.assert_text_visible("Hello, world!");

// Simulate a tap on a button
driver.tap_text("Submit")?;

// Verify state change
driver.assert_text_visible("Submitted!");

Environment variables

Variable
Effect
FISSION_TEST_USE_MOCK_MEASURER=1
Force the mock text measurer (10 px per char, 20 px line height).
FISSION_TEST_MEASURER=mock
Same as above.

Status

Supported -- actively used for widget and integration tests across the Fission workspace.

License

MIT -- see the Fission repository for full documentation at https://fission.rs.
Package metadata
crates.io
View package
Documentation
Not provided
Repository
Open link
License
MIT
Latest version
0.10.0
Downloads
260
Last updated
2026-08-02T15:42:34.457817Z
Categories
development-tools::testing
gui
Keywords
cross-platform
fission
headless
testing
ui-testing
Published versions
0.10.0
0.9.2
0.9.1
0.9.0
0.8.0
0.7.0
0.6.3
0.6.2
0.6.1
0.5.1
0.5.0
0.4.1
Dependencies
Dependency metadata is not indexed yet.