Search code examples
.netunit-testingmstestfluentfluent-interface

Is there a fluent assertion API for MSTest?


I've recently been exposed to the fluent interface in nUnit and I love it; however, I am using msTest.

Does anyone know if there is a fluent interface that is either testing framework agnostic or for msTest?


Solution

  • See Fluent Assertions. You can do stuff like

    "ABCDEFGHI".Should().StartWith("AB").And.EndWith("HI").And.Contain("EF").And.HaveLength(9);
    
    new[] { 1, 2, 3 }.Should().HaveCount(4, "because we thought we put three items in the 
    collection"))
    
    dtoCollection.Should().Contain(dto => dto.Id != null);
    
    collection.Should().HaveCount(c => c >= 3);
    
    dto.ShouldHave().AllPropertiesBut(d => d.Id).EqualTo(customer);
    
    dt1.Should().BeWithin(TimeSpan.FromHours(50)).Before(dt2); 
    
    Action action = () => recipe.AddIngredient("Milk", 100, Unit.Spoon);
    action
       .ShouldThrow<RuleViolationException>()
       .WithMessage("Cannot change the unit of an existing ingredient")
       .And.Violations.Should().Contain(BusinessRule.CannotChangeIngredientQuanity