Есть ли возможность переопределить сообщения по умолчанию FluentAssertions
. Иногда я просто хочу, чтобы мое пользовательское сообщение было напечатано в результате неудачного теста. Пока я не нашел решения для этого, но, возможно, я что-то упустил.
Пример:
myOrderedList.SequenceEqual(desiredOrderedList)
.Should().BeTrue("Elements are not in correct order.\r\n" +
$"Error in JSON file: {fileName}.\r\n" +
$"Required order of elements is {string.Join(", ", desiredOrderedList)}");
Сообщение о результате:
Expected boolean to be true because Elements are not in correct order.
Error in JSON file: MyTestData.json.
Required order of elements is str1, str2, str3, but found False.
Но я хотел бы иметь просто это
Elements are not in correct order.
Error in JSON file: MyTestData.json.
Required order of elements is str1, str2, str3.
EDIT: Пробовал это
public static class BooleanAssertionsExtensions
{
public static BooleanAssertions Should(this bool? instance)
{
return new BooleanAssertions(instance);
}
}
public class BooleanAssertions
{
public BooleanAssertions(bool? instance)
{
Subject = instance;
}
public bool? Subject { get; private set; }
public AndConstraint<BooleanAssertions> BeTrueCustom(string because = "", params object[] becauseArgs)
{
Execute.Assertion
.ForCondition(Subject == true)
.BecauseOf(because, becauseArgs)
.FailWith("{reason}");
return new AndConstraint<BooleanAssertions>(this);
}
}
но при попытке сделать .Should().BeTrueCustom(...
я получаю эту ошибку: «BooleanAssertions» не содержит определения для «BeTrueCustom», и не может быть найден доступный метод расширения «BeTrueCustom», принимающий первый аргумент типа «BooleanAssertions» (вы пропустили директиву использования или ссылка на сборку?
Я, вероятно, немного медлителен, но не понимаю, что я делаю неправильно или как я могу создать новое расширение, расширяющее или переопределяющее поведение по умолчанию (сообщение по умолчанию). Очень грустно, что FA не поддерживает такую фундаментальную вещь.
myOrderedList.Should().BeEquivalentTo(desiredOrderedList, config => config.WithStrictOrdering())
? - person Fabio   schedule 09.12.2019Expected collection {SomeProperty: 1, OtherProperty: item, SomeProperty: 2, OtherProperty: item} to be equivalent to {SomeProperty: 1, OtherProperty: item, SomeProperty: 2, OtherProperty: other}, but it misses {SomeProperty: 2, OtherProperty: other}.
- person Gondil   schedule 09.12.2019Excepted something {because message} but found smthing other.
Нет возможности осмысленно добавить какое-то важное сообщение, потому что оно вставлено в этот контекст сообщения FA. - person Gondil   schedule 09.12.2019