Skip to main content

Benchmarks

These benchmarks compare aweXpect's happy-path overhead (passing assertions, the dominant case in a healthy test suite) against the equivalent FluentAssertions and TUnit 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.
  • 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
3.1×as long
6.6×as much memory
relative to aweXpect · median of 12 benchmarks
TUnit v1.76.28
1.5×as long
2.1×as much memory
relative to aweXpect · median of 11 benchmarks

Verifies that two string values are equal, ignoring case.

Time
aweXpect213.4 ns
FluentAssertions509.6 ns+139%
TUnit326.3 ns+53%
Memory
aweXpect344 B
FluentAssertions2.25 KiB+570%
TUnit912 B+165%
Captured on commit 77e01f4b (2026-10-31) on ubuntu-latest.
aweXpect
await That(_stringSubject).IsEqualTo(_stringExpectation).IgnoringCase();
FluentAssertions
_stringSubject.Should().BeEquivalentTo(_stringExpectation);
TUnit
await Assert.That(_stringSubject).IsEqualTo(_stringExpectation).IgnoringCase();

View source on GitHub →

Extension packages​

The extension packages compare their main features with FluentAssertions on their own benchmark pages:

aweXpect.Snapshots has no benchmarks: its time goes into file access, and FluentAssertions has no snapshots to compare with.