Test

Sway provides the #[test] attribute which enables unit tests to be written in Sway.

Success case

The #[test] attribute indicates that a test has passed if it did not revert.

#[test] fn equal() { assert_eq(1 + 1, 2); }

Revert Case

To test a case where code should revert we can use the #[test(should_revert)] annotation. If the test reverts then it will be reported as a passing test.

#[test(should_revert)] fn unequal() { assert_eq(1 + 1, 3); }

We may specify a code to specifically test against.

#[test(should_revert = "18446744073709486084")] fn assert_revert_code() { assert(1 + 1 == 3); } #[test(should_revert = "42")] fn custom_revert_code() { revert(42); }