Свободные утверждения - как правильно цепочка после проверки типа - PullRequest
1 голос
/ 25 февраля 2020

Почему я не могу сделать следующее с FluentAssertions, используя свойство 'And'?

SomeObject.Should()
   .BeAssignableTo<OtherObject>()
   .And
   .SomeStringProperty.Should().StartWith("whatever");

Это не скомпилируется, потому что после And он не знает, что это тип SomeObject. Вместо этого я должен использовать «Который» вместо «А», который, как я думал, использовался для коллекций, а не для отдельных объектов. Какая версия компилируется, но семантика не так ясна

1 Ответ

1 голос
/ 26 февраля 2020

Which даст вам ссылку на SomeObject, но будет выглядеть как OtherObject. Таким образом, ваш пример изменится на:

SomeObject.Should()
   .BeAssignableTo<OtherObject>()
   .Which.SomeStringProperty.Should().StartWith("whatever");
...