From 2c1dad4f4a9777df32f000f8a56c4a17fe3229cc Mon Sep 17 00:00:00 2001 From: Gurpreet Singh Date: Fri, 29 May 2026 16:43:07 +0100 Subject: [PATCH] print meaninfull values for null empty and whitespace --- .../Scanner/Examples/ExampleValueTests.cs | 7 +++---- ...ntWithExamples.FluentCanBeUsedWithExamples.approved.txt | 2 +- .../Scanners/StepScanners/ArgumentCleaningExtensions.cs | 7 ++++++- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/TestStack.BDDfy.Tests/Scanner/Examples/ExampleValueTests.cs b/src/TestStack.BDDfy.Tests/Scanner/Examples/ExampleValueTests.cs index d97fe3e2..36b1dfbf 100644 --- a/src/TestStack.BDDfy.Tests/Scanner/Examples/ExampleValueTests.cs +++ b/src/TestStack.BDDfy.Tests/Scanner/Examples/ExampleValueTests.cs @@ -1,5 +1,4 @@ -using System; -using Shouldly; +using Shouldly; using Xunit; namespace TestStack.BDDfy.Tests.Scanner.Examples @@ -9,9 +8,9 @@ public class ExampleValueTests [Fact] public void CanFormatAsStringTests() { - new ExampleValue("Header", null, () => 0).GetValueAsString().ShouldBe("'null'"); + new ExampleValue("Header", null, () => 0).GetValueAsString().ShouldBe(""); new ExampleValue("Header", 1, () => 0).GetValueAsString().ShouldBe("1"); - new ExampleValue("Header", new Object(), () => 0).GetValueAsString().ShouldBe("System.Object"); + new ExampleValue("Header", new object(), () => 0).GetValueAsString().ShouldBe("System.Object"); new ExampleValue("Header", new[] {1, 2}, () => 0).GetValueAsString().ShouldBe("1, 2"); } } diff --git a/src/TestStack.BDDfy.Tests/Scanner/Examples/FluentWithExamples.FluentCanBeUsedWithExamples.approved.txt b/src/TestStack.BDDfy.Tests/Scanner/Examples/FluentWithExamples.FluentCanBeUsedWithExamples.approved.txt index b6d48ad7..53786116 100644 --- a/src/TestStack.BDDfy.Tests/Scanner/Examples/FluentWithExamples.FluentCanBeUsedWithExamples.approved.txt +++ b/src/TestStack.BDDfy.Tests/Scanner/Examples/FluentWithExamples.FluentCanBeUsedWithExamples.approved.txt @@ -10,6 +10,6 @@ Scenario: Fluent can be used with examples Examples: | Prop 1 | Prop2 | Prop 3 | Multi word heading | -| 1 | foo | ConsecutiveAssertion | | +| 1 | foo | ConsecutiveAssertion | | | 2 | bar | Initialize | val2 | diff --git a/src/TestStack.BDDfy/Scanners/StepScanners/ArgumentCleaningExtensions.cs b/src/TestStack.BDDfy/Scanners/StepScanners/ArgumentCleaningExtensions.cs index 73d2f43c..0727ae47 100644 --- a/src/TestStack.BDDfy/Scanners/StepScanners/ArgumentCleaningExtensions.cs +++ b/src/TestStack.BDDfy/Scanners/StepScanners/ArgumentCleaningExtensions.cs @@ -22,6 +22,11 @@ public static object FlattenArray(this object input) return GetSafeValue(input); } - static object GetSafeValue(object input) => input ?? "'null'"; + static object GetSafeValue(object input) => input switch + { + null => "", + string s => s == "" ? "" : (s.Trim() == "" ? $"'{s}'" : s), + _ => input + }; } } \ No newline at end of file