Skip to content

TUnitAssertions0009 invalid fix for xUnit.net's Assert.True and Assert.False with user message #3857

@sliekens

Description

@sliekens

Hello,

The analyzer fix for true/false assertion with a user message is not correct:

Xunit.Assert.True(condition, userMessage)
Xunit.Assert.False(condition, userMessage)

e.g.:

public class TrueFalseTest
{
    [Test]
    public void TrueTest()
    {
        bool result = true;
        Xunit.Assert.True(result, "user message if false");
    }

    [Test]
    public void FalseTest()
    {
        bool result = true;
        Xunit.Assert.False(result, "user message if false");
    }
}

Actual behavior

public class TrueFalseTest
{
    [Test]
    public void TrueTest()
    {
        bool result = true;
        Assert.That("user message if false").IsTrue();
    }

    [Test]
    public void FalseTest()
    {
        bool result = false;
        Assert.That("user message if false").IsFalse();
    }
}

Expected behavior

public class TrueFalseTest
{
    [Test]
    public void TrueTest()
    {
        bool result = true;
        Assert.That(result).IsTrue().Because("user message if false");
    }

    [Test]
    public void FalseTest()
    {
        bool result = false;
        Assert.That(result).IsFalse().Because("user message if true");
    }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions