mspec

Why is MSpec's ShouldBeOfType<T> assertion extension method missing?


I'm trying to use Mspec's ShouldBeOfType<T>() assertion extension method, but intellisense says that it can't find it. I'm using MSpec v0.7.0. I tried reinstalling using Nuget but didn't work.

[Subject("Prop Manager")]
public class When_Replying_To_Prop_Which_Already_Had_Emailed_And_No_Overwrite
{
    Because of = () => _exception = Catch.Exception(() => _PropManager.ReplyToProp());

    It should_result_in_an_error = () => _exception.ShouldBeOfType<InvalidOperationException>();

    private static Exception _exception;
}

Solution

  • As of version 0.7.0, Machine.Specifications does not include assertions any more (see Daniel Marbach's blog). You have to install Machine.Specifications.Should (or another assertions library).

    Additionally, ShouldBeOfType() has been replaced with ShouldBeOfExactType() (or ShouldBeAssignableTo() respectively), so you should also change that in your code (see github issue.