From df6533f01d688072b14843403d3e174eafd071c0 Mon Sep 17 00:00:00 2001 From: Dennis Doomen Date: Sun, 6 Feb 2022 20:40:23 +0100 Subject: [PATCH] Improve the structure of a trace log --- Src/FluentAssertions/Equivalency/EquivalencyValidator.cs | 5 +++-- .../Equivalency/Steps/ValueTypeEquivalencyStep.cs | 2 +- docs/_pages/releases.md | 1 + 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Src/FluentAssertions/Equivalency/EquivalencyValidator.cs b/Src/FluentAssertions/Equivalency/EquivalencyValidator.cs index 918a86d945..4fab562ba5 100644 --- a/Src/FluentAssertions/Equivalency/EquivalencyValidator.cs +++ b/Src/FluentAssertions/Equivalency/EquivalencyValidator.cs @@ -62,13 +62,14 @@ private static void UpdateScopeWithReportableContext(AssertionScope scope, Compa private void RunStepsUntilEquivalencyIsProven(Comparands comparands, IEquivalencyValidationContext context) { + using var _ = context.Tracer.WriteBlock(node => $"{node.Description}"); + foreach (IEquivalencyStep step in AssertionOptions.EquivalencyPlan) { var result = step.Handle(comparands, context, this); - context.Tracer.WriteLine(_ => $"Step {step.GetType().Name} returned {result}"); - if (result == EquivalencyResult.AssertionCompleted) { + context.Tracer.WriteLine(_ => $"Equivalency was proven by {step.GetType().Name}"); return; } } diff --git a/Src/FluentAssertions/Equivalency/Steps/ValueTypeEquivalencyStep.cs b/Src/FluentAssertions/Equivalency/Steps/ValueTypeEquivalencyStep.cs index 8eb640c7d4..2015db3756 100644 --- a/Src/FluentAssertions/Equivalency/Steps/ValueTypeEquivalencyStep.cs +++ b/Src/FluentAssertions/Equivalency/Steps/ValueTypeEquivalencyStep.cs @@ -18,7 +18,7 @@ public EquivalencyResult Handle(Comparands comparands, IEquivalencyValidationCon context.Tracer.WriteLine(member => { string strategyName = (strategy == EqualityStrategy.Equals) - ? "Equals must be used" : "object overrides Equals"; + ? $"{expectationType} overrides Equals" : "we are forced to use Equals"; return $"Treating {member.Description} as a value type because {strategyName}."; }); diff --git a/docs/_pages/releases.md b/docs/_pages/releases.md index 1745b6b0c6..cd2d5d331b 100644 --- a/docs/_pages/releases.md +++ b/docs/_pages/releases.md @@ -17,6 +17,7 @@ sidebar: * Improved the documentation on `BeLowerCased` and `BeUpperCased` for strings with non-alphabetic characters - [#1792](https://github.com/fluentassertions/fluentassertions/pull/1792) * Caller identification does not handle all arguments using `new` - [#1794](https://github.com/fluentassertions/fluentassertions/pull/1794) * Resolve an issue preventing `HaveAccessModifier` from correctly recognizing internal interfaces and enums - [#1793](https://github.com/fluentassertions/fluentassertions/issues/1793) +* Improved tracing for nested `AssertionScope`s - [#1797](https://github.com/fluentassertions/fluentassertions/pull/1797) ### Fixes (Extensibility) * Fixed a continuation issue when using `ClearExpectation` - [#1791](https://github.com/fluentassertions/fluentassertions/pull/1791)