diff --git a/src/BootstrapBlazor/Components/Circle/CircleBase.cs b/src/BootstrapBlazor/Components/Circle/CircleBase.cs
index 31dbf9a617a051c9a0c5ddb80fa5561198860ac5..2ff1c9e880bc7c2a6f72f5e6fd08a12144f57e39 100644
--- a/src/BootstrapBlazor/Components/Circle/CircleBase.cs
+++ b/src/BootstrapBlazor/Components/Circle/CircleBase.cs
@@ -94,9 +94,9 @@ public abstract class CircleBase : BootstrapComponentBase
///
/// OnInitialized 方法
///
- protected override void OnInitialized()
+ protected override void OnParametersSet()
{
- base.OnInitialized();
+ base.OnParametersSet();
// 检查 StrokeWidth 参数
if (Width / 2 < StrokeWidth) StrokeWidth = 2;
diff --git a/test/UnitTest/Components/CircleTest.cs b/test/UnitTest/Components/CircleTest.cs
new file mode 100644
index 0000000000000000000000000000000000000000..274ac2415ae94804b5f8deea645f03db056e2a8a
--- /dev/null
+++ b/test/UnitTest/Components/CircleTest.cs
@@ -0,0 +1,81 @@
+// Copyright (c) Argo Zhang (argo@163.com). All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+// Website: https://www.blazor.zone or https://argozhang.github.io/
+
+using BootstrapBlazor.Components;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace UnitTest.Components;
+
+public class CircleTest : TestBase
+{
+ [Fact]
+ public void Value_Ok()
+ {
+ var cut = Context.RenderComponent(builder => builder.Add(a => a.Value, 100));
+
+ Assert.Contains("100%", cut.Markup);
+ }
+
+ [Fact]
+ public void Width_Ok()
+ {
+ var cut = Context.RenderComponent(builder => builder.Add(a => a.Width, 100));
+
+ Assert.Contains("width: 100px", cut.Markup);
+ }
+
+ [Fact]
+ public void StrokeWidth_Ok()
+ {
+ var cut = Context.RenderComponent(builder => builder.Add(a => a.StrokeWidth, 5));
+
+ Assert.Contains("stroke-width=\"5\"", cut.Markup);
+
+ // 增加代码覆盖率
+ //Width / 2 < StrokeWidth
+ cut.SetParametersAndRender(pb =>
+ {
+ pb.Add(a => a.Width, 6);
+ pb.Add(a => a.StrokeWidth, 6);
+ });
+ Assert.Equal(2, cut.Instance.StrokeWidth);
+ }
+
+ [Fact]
+ public void Color_Ok()
+ {
+ var cut = Context.RenderComponent(builder => builder.Add(a => a.Color, Color.Success));
+
+ var element = cut.Find(".circle-success");
+
+ Assert.NotNull(element);
+ }
+
+ [Fact]
+ public void ShowProgress_Ok()
+ {
+ var cut = Context.RenderComponent(builder => builder.Add(a => a.ShowProgress, false));
+
+ var element = cut.Find(".d-none");
+
+ Assert.NotNull(element);
+ }
+
+ [Fact]
+ public void Value_ChildContent()
+ {
+ var cut = Context.RenderComponent(builder => builder.Add(a => a.ChildContent, s =>
+ {
+ s.OpenElement(1, "div");
+ s.AddContent(2, "I am cricle");
+ s.CloseElement();
+ }));
+
+ Assert.Contains("I am cricle", cut.Markup);
+ }
+}