We’re using MSpec for unit tests after having previously used MbUnit.
I’m used to being able to say
Assert.IsTrue(status, "Status should be true");
in MbUnit, i.e. adding a message to the assertion which is output if it fails.
I can’t find any corresponding functionality in MSpec. I’m testing that some XML validates and, if it fails, I want to report the validation error message. So my MSpec code looks like
string message;
bool isValid = ValidateXml(myXml, out message);
isValid.ShouldBeTrue();
But I want to be able to add the message to the test output if the ShouldBeTrue() fails.
Is this possible?
Looking at the source for MSpec, no. The extension methods do not take a string parameter for a message.
You could trivially add the functionality yourself, in terms of code to write; the code is in
machine.specifications / Source / Machine.Specifications / ExtensionMethods.cs. I don’t know how hard it is to build.For example you could create overloads of
ShouldBeFalseandShouldBeTruelike so: