Skip to main content

Benchmarks

These benchmarks compare the happy-path overhead of aweXpect.Reflection (passing assertions, the dominant case in a healthy test suite) against the equivalent FluentAssertions calls.

Methodology
  • Suite: HappyCaseBenchmarks driven by BenchmarkDotNet.
  • Job: MediumRun with the in-process toolchain.
  • Runner: ubuntu-latest GitHub Actions agent, refreshed on every push to main.
  • FluentAssertions has no expectations on nullability or dependencies. For these, its benchmark does what a FluentAssertions user writes instead, which does not cover everything aweXpect.Reflection verifies.
  • Each tab shows the latest measured time and allocated memory; bars are scaled within the row so length corresponds to magnitude. Lower is better.
FluentAssertions v8.11.0
1.6×as long
4.0×as much memory
relative to aweXpect · median of 6 benchmarks

Verifies that a type is decorated with an attribute.

Time
aweXpect778.7 ns
FluentAssertions893.2 ns+15%
Memory
aweXpect544 B
FluentAssertions1.22 KiB+129%
Captured on commit 77e01f4b (2026-10-31) on ubuntu-latest.
aweXpect
await That(_entityType).Has<EntityAttribute>();
FluentAssertions
_entityType.Should().BeDecoratedWith<EntityAttribute>();

View source on GitHub →