Использование FluentAssertions.Should().NotBeNull() вместо Assert.NotNull(record.Message) дает возможный запах NullReferC#

Место общения программистов C#
Ответить
Anonymous
 Использование FluentAssertions.Should().NotBeNull() вместо Assert.NotNull(record.Message) дает возможный запах NullRefer

Сообщение Anonymous »

У меня небольшой вопрос по поводу FluentAssertions и Record.Should().NotBeNull();
Здесь я использую XUnit для модульного тестирования и его класс Record. p>
Воспользуйтесь этим кодом с помощью Record:

Код: Выделить всё

    // i expect this code will explode and the record will be not null
var record = await Record.ExceptionAsync(() =>
sut.SomeActionThatExplode(new SomeDto())
);
Итак, здесь я использую методы XUnit.Assert:

Код: Выделить всё

    Assert.IsType(record);
Assert.NotNull(record.Message);
Assert.Equal("abcs",record.Message); // here all is ok! and i have no smells
При использовании этого метода у меня нет запахов, и все в порядке, как я и ожидал.
В следующем примере я делаю то же утверждение, но с использованием FluentAssertions. вместо этого:

Код: Выделить всё

    record.Should().BeOfType();
record.Should().NotBeNull();
record.Message.Should().NotBeNull(); // here i have a smell issue
record.Message.Should().Be("abcs");
Когда я использую FluentAssertions, я получил возможный запах «System.NullReferenceException» в строке записи.Message.Should().NotBeNull() для записи .
Вот снимок:
Изображение

Я что-то делаю не так? как я могу избежать запаха, используя только методы FluentAssertion?
Может быть, мне следует использовать смесь обоих, например:

Код: Выделить всё

    Assert.IsType(record);
Assert.NotNull(record.Message);
record.Message.Should().NotBeNull();
record.Message.Should().Be("abcs"); // that's fine an i got no smells.
Однако я хочу использовать только FluentAssertions, чтобы в моем коде не было запахов.
Заранее спасибо.
Как красавица!


Подробнее здесь: https://stackoverflow.com/questions/785 ... lrecord-me
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»