FluentAssertions: строка не содержит определения для ShouldBeEquivalentTo
Я пытаюсь использовать Nspec. Я следовал этим инструкциям: http://nspec.org/
- Создать проект библиотеки классов
- Nuget: Install-пакет nspec
- Nuget: Install-Package FluentAssertions
- Создайте файл класса и вставьте следующий код:
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");
};
};
}
}