FluentAssertions: строка не содержит определения для ShouldBeEquivalentTo

Я пытаюсь использовать Nspec. Я следовал этим инструкциям: http://nspec.org/

  1. Создать проект библиотеки классов
  2. Nuget: Install-пакет nspec
  3. Nuget: Install-Package FluentAssertions
  4. Создайте файл класса и вставьте следующий код:

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");
            };
        };
    }
}

Редактор распознает пространства имен и класс nspec, однако я вижу ошибку компилятора, которая говорит:

'Строка не содержит определения для ShouldBeEquivalentTo'.

В чем проблема?

Я использую.NET 4.7.1 и Visual Studio 2017.

Я потратил некоторое время на поиск в Google, и я посмотрел здесь, например: https://github.com/fluentassertions/fluentassertions/issues/234

1 ответ

Решение

FluentAssertions удалил ShouldBeEquivalentTo расширение как прорывное изменение в более поздних версиях.

Обратитесь к недавней документации FluentAssertions для предлагаемой альтернативы

https://fluentassertions.com/documentation/

name.Should().BeEquivalentTo(...);

Ваш пример кода должен быть обновлен до

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");
            };
        };
    }
}
Другие вопросы по тегам