From b45e551fa8a62fd7ed6a6c2864d6b3c5c6be0557 Mon Sep 17 00:00:00 2001 From: gewuyou <95328647+GeWuYou@users.noreply.github.com> Date: Sat, 25 Apr 2026 10:12:35 +0800 Subject: [PATCH] =?UTF-8?q?test(core-tests):=20=E6=94=B6=E6=95=9B=E9=80=89?= =?UTF-8?q?=E9=A1=B9=E4=B8=8E=E6=89=A9=E5=B1=95=E6=B5=8B=E8=AF=95=E7=9A=84?= =?UTF-8?q?=E5=9F=BA=E7=A1=80=20warning?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 更新 OptionTests 中的 culture-sensitive 转换与 TryParse 写法 - 修正 AsyncExtensionsTests 与 CollectionExtensionsTests 的低风险异步和字符串比较写法 --- .../Extensions/AsyncExtensionsTests.cs | 8 ++++---- .../Extensions/CollectionExtensionsTests.cs | 2 +- GFramework.Core.Tests/Functional/OptionTests.cs | 11 ++++++----- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/GFramework.Core.Tests/Extensions/AsyncExtensionsTests.cs b/GFramework.Core.Tests/Extensions/AsyncExtensionsTests.cs index 13d4933c..82d50b7d 100644 --- a/GFramework.Core.Tests/Extensions/AsyncExtensionsTests.cs +++ b/GFramework.Core.Tests/Extensions/AsyncExtensionsTests.cs @@ -236,11 +236,11 @@ public class AsyncExtensionsTests }; // Act & Assert - Assert.ThrowsAsync(async () => - await taskFactory.WithRetryAsync(3, TimeSpan.FromMilliseconds(10), + Assert.ThrowsAsync(() => + taskFactory.WithRetryAsync(3, TimeSpan.FromMilliseconds(10), ex => ex is not ArgumentException)); - await Task.Delay(50); // 等待任务完成 + await Task.Delay(50).ConfigureAwait(false); // 等待任务完成 Assert.That(attemptCount, Is.EqualTo(1)); // 不应该重试 } @@ -330,4 +330,4 @@ public class AsyncExtensionsTests // Assert Assert.That(capturedEx, Is.SameAs(expectedException)); } -} \ No newline at end of file +} diff --git a/GFramework.Core.Tests/Extensions/CollectionExtensionsTests.cs b/GFramework.Core.Tests/Extensions/CollectionExtensionsTests.cs index 042065ef..8b9bce5c 100644 --- a/GFramework.Core.Tests/Extensions/CollectionExtensionsTests.cs +++ b/GFramework.Core.Tests/Extensions/CollectionExtensionsTests.cs @@ -173,7 +173,7 @@ public class CollectionExtensionsTests { var method = typeof(GFramework.Core.Extensions.CollectionExtensions) .GetMethods() - .Single(static method => method.Name == nameof(GFramework.Core.Extensions.CollectionExtensions.ToDictionarySafe)); + .Single(static method => string.Equals(method.Name, nameof(GFramework.Core.Extensions.CollectionExtensions.ToDictionarySafe), StringComparison.Ordinal)); var methodGenericArguments = method.GetGenericArguments(); var returnTypeGenericArguments = method.ReturnType.GetGenericArguments(); diff --git a/GFramework.Core.Tests/Functional/OptionTests.cs b/GFramework.Core.Tests/Functional/OptionTests.cs index ab5a10fe..43999fbb 100644 --- a/GFramework.Core.Tests/Functional/OptionTests.cs +++ b/GFramework.Core.Tests/Functional/OptionTests.cs @@ -11,6 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +using System.Globalization; using GFramework.Core.Functional; using NUnit.Framework; @@ -122,7 +123,7 @@ public class OptionTests public void Map_WithSome_Should_Map_Value() { var option = Option.Some(42); - var mapped = option.Map(x => x.ToString()); + var mapped = option.Map(x => x.ToString(CultureInfo.InvariantCulture)); Assert.That(mapped.IsSome, Is.True); Assert.That(mapped.GetOrElse(""), Is.EqualTo("42")); } @@ -134,7 +135,7 @@ public class OptionTests public void Map_WithNone_Should_Return_None() { var option = Option.None; - var mapped = option.Map(x => x.ToString()); + var mapped = option.Map(x => x.ToString(CultureInfo.InvariantCulture)); Assert.That(mapped.IsNone, Is.True); } @@ -155,7 +156,7 @@ public class OptionTests public void Bind_WithSome_Should_Bind_Value() { var option = Option.Some("42"); - var bound = option.Bind(s => int.TryParse(s, out var i) + var bound = option.Bind(s => int.TryParse(s, NumberStyles.Integer, CultureInfo.InvariantCulture, out var i) ? Option.Some(i) : Option.None); @@ -170,7 +171,7 @@ public class OptionTests public void Bind_WithSome_Can_Return_None() { var option = Option.Some("invalid"); - var bound = option.Bind(s => int.TryParse(s, out var i) + var bound = option.Bind(s => int.TryParse(s, NumberStyles.Integer, CultureInfo.InvariantCulture, out var i) ? Option.Some(i) : Option.None); @@ -505,4 +506,4 @@ public class OptionTests var result = option.ToString(); Assert.That(result, Is.EqualTo("None")); } -} \ No newline at end of file +}