Skip to content

[Feature]: [TUnit.Assertions.Should] Make ShouldAssertion<T> inherit from IAssertion #5824

@kzrnm

Description

@kzrnm

Problem Statement

Currently, there’s no way to convert ShouldAssertion<T> to a Task, so it can’t be used with Task.WhenAll.

#3969 (comment)

[Test]
public async Task SpanTest()
{
    Span<int> span = [1, 2, 3];
    var list = new List<Task>();
    using (Assert.Multiple())
    {
        list.Add(Assert.That(span.Length).IsNotEqualTo(3).AssertAsync());
        list.Add(Assert.That(span[^1]).IsNotEqualTo(3).AssertAsync());
        list.Add(span[^1].Should().BeNotEqualTo(3).AssertAsync()); // There’s no way to make a `Task`.
    }
    await Task.WhenAll(list);
}

Proposed Solution

public class ShouldAssertion<T>: IAssertion
{
    Task IAssertion.AssertAsync() => _inner.AssertAsync();
}

Alternatives Considered

No response

Feature Category

Assertions

How important is this feature to you?

Important - significantly impacts my workflow

Additional Context

No response

Contribution

  • I'm willing to submit a pull request for this feature

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions