After performing a test, we typically do an Assert.True(someCondition). When a condition check isn't necessary and just completion of the test is sufficient, I end a test with Assert.Pass().
I'm using FluentAssertions and have been doing true.Should().BeTrue();. That is starting to feel more like a hack and not in the correct spirit of the library.
Is there some other Fluent syntax I could use to accomplish .Pass() intention?
-Update: Based on feedback, there is nothing wrong with using .Pass() from XUnit or NUnit when using primarily FluentAssertions.
CodePudding user response:
There isn't any equivalent to Assert.Pass() in Fluent Assertions.
true.Should().BeTrue() is a tautology and a weaker statement than Assert.Pass(). So between those two I would continue using Assert.Pass().
Another way to explicitly state in code that running to completion is success, is saying that no exceptions should occur.
// Arrange
var subject = ...
// Act
var act = () => subject.CalculateTaxes();
// Assert
act.Should().NotThrow<Exception>();
For more examples on how to assert on exceptions, see https://fluentassertions.com/exceptions/.
A third way is to simply abandon the requirement of an explicit assertion, this can e.g. be captured in the method name, e.g. calculating_taxes_does_not_throw.
