I am trying to use Nspec. I have followed these instructions: http://nspec.org/
using NSpec;
using FluentAssertions;
class my_first_spec : nspec
{
string name;
void before_each()
{
name = "NSpec";
}
void it_asserts_at_the_method_level()
{
name.ShouldBeEquivalentTo("NSpec");
}
void describe_nesting()
{
before = () => name += " Add Some Other Stuff";
it["asserts in a method"] = () =>
{
name.ShouldBeEquivalentTo("NSpec Add Some Other Stuff");
};
context["more nesting"] = () =>
{
before = () => name += ", And Even More";
it["also asserts in a lambda"] = () =>
{
name.ShouldBeEquivalentTo("NSpec Add Some Other Stuff, And Even More");
};
};
}
}
The editor recognises the namespaces and the nspec class, however I see a compiler error that says:
'string does not contain a definition for ShouldBeEquivalentTo'.
What is the problem?
I am using .NET 4.7.1 and Visual Studio 2017.
I have spent some time Googling this and I have looked here for example: https://github.com/fluentassertions/fluentassertions/issues/234
FluentAssertions has removed ShouldBeEquivalentTo
extension as a breaking change in more recent versions.
Refer to the recent FluentAssertions documentation for the suggested alternative
https://fluentassertions.com/introduction
name.Should().BeEquivalentTo(...);
Your example code would need to be updated to
class my_first_spec : nspec {
string name;
void before_each() {
name = "NSpec";
}
void it_asserts_at_the_method_level() {
name.Should().BeEquivalentTo("NSpec");
}
void describe_nesting() {
before = () => name += " Add Some Other Stuff";
it["asserts in a method"] = () => {
name.Should().BeEquivalentTo("NSpec Add Some Other Stuff");
};
context["more nesting"] = () => {
before = () => name += ", And Even More";
it["also asserts in a lambda"] = () => {
name.Should().BeEquivalentTo("NSpec Add Some Other Stuff, And Even More");
};
};
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With