2 releases

0.1.2 Aug 20, 2024
0.1.1 Aug 20, 2024
0.1.0 Aug 20, 2024

#599 in Game dev

MIT license

39KB
389 lines

Crates.io Size GitHub Issues or Pull Requests MIT License Bevy version 0.14.1

Test things bevy!

use my_lib::{Countdown, CountdownPlugin};

// import bevy's and bevy_testing's prelude
use bevy_testing::p::*;

// create your app as usual
let mut app = App::new();
app.add_plugins(CountdownPlugin);

// useful world methods are exposed
app.spawn(Countdown(10));

// run schedules once
app.update_once();

// assert that a query returns some values
app.query::<&Countdown>()
    .matches(vec![&Countdown(9)]);

Usage

just use bevy_testing::TestApp (view docs)!

In cases where you need more control, you can always get the world via App::world() and App::world_mut().

This library also exports bevy_testing::p, short for prelude, which contains the entire bevy prelude as well as TestApp.

Query Matching

Use App::query() to check...

method name description
.matches() if the query matches the given bundles
.has() if the query contains the given bundle
.has_all() if the query contains all given bundles
.has_any() if the query contains any of the given bundles
.all() if all bundles match the given predicate
.any() if any bundle matches the given predicate
.length() if the query matches the given length
.not() ... to invert the test

Bevy versions

bevy bevy_testing
0.14 0.1.1

Dependencies

~20–34MB
~498K SLoC