== Why is this an issue?

Using literal boolean values in assertions can lead to less readable and less informative unit tests.
When a test fails, it's important to have a clear understanding of what the test was checking and why it failed.
Most of the testing frameworks provide more explicit assertion methods that will provide a more helpful error message if the test fails.

=== Exceptions

In the context of xUnit, `Assert.True` and `Assert.False` are not flagged by this rule. This is because `Assert.Fail` was only introduced in 2020 with version `2.4.2`. Prior to this, developers used `Assert.True(false, message)` and `Assert.False(true, message)` as workarounds to simulate the functionality of `Assert.Fail()`.

include::how-mstest.adoc[]

include::how-nunit.adoc[]

include::how-xunit.adoc[]

== Resources

=== Documentation

* https://docs.nunit.org/[NUnit Documentation]
* https://xunit.net/docs/getting-started/netcore/cmdline[xUnit Documentation]
* Microsoft Learn - https://learn.microsoft.com/en-us/dotnet/core/testing/unit-testing-with-mstest[MSTest Documentation]
* https://github.com/xunit/xunit/issues/2027[Xunit doesn't have an Assert.Fail() operation]

include::../rspecator.adoc[]