Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C# fluent assertions result of check as bool

I am trying to use Fluent Assertions on C# outside of test frameworks. Is there any way I could cast an FA check to bool? For example I need to achieve something like:

bool result= a.Should().Be(0);

If passes then result = true; if fails, result = false.

Is there any way of casting or extracting a bool result from the assertion?

like image 480
kris Avatar asked Sep 08 '25 05:09

kris


1 Answers

Fluent Assertions is designed to throw exceptions that testing frameworks catch, not to return values.

About the best you can do is to create a method that accepts an action, and that catches the exception when the action throws. In the catch you'd return false.

public bool Evaluate(Action a)
{
    try
    {
        a();
        return true;
    }
    catch
    {
        return false;
    }
}

You would use it like this:

bool result = Evaluate(() => a.Should().Be(0));

This will have terrible performance in the negative case; throwing exceptions is not cheap. You might get frowns from others because, generally, exceptions shouldn't be used for flow control.

That said, this does what you want.

like image 135
Kit Avatar answered Sep 10 '25 10:09

Kit