Здесь я использую 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())
);
Код: Выделить всё
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");
Вот снимок:

Я что-то делаю не так? как я могу избежать запаха, используя только методы 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.
Заранее спасибо.
Как красавица!
Подробнее здесь: https://stackoverflow.com/questions/785 ... lrecord-me
Мобильная версия