diff --git a/Test/BetterGenshinImpact.UnitTest/GameTaskTests/AutoFishingTests/BehavioursTests.GetFishBoxArea.cs b/Test/BetterGenshinImpact.UnitTest/GameTaskTests/AutoFishingTests/BehavioursTests.GetFishBoxArea.cs
new file mode 100644
index 00000000..6be0ae4f
--- /dev/null
+++ b/Test/BetterGenshinImpact.UnitTest/GameTaskTests/AutoFishingTests/BehavioursTests.GetFishBoxArea.cs
@@ -0,0 +1,72 @@
+using BehaviourTree;
+using BetterGenshinImpact.GameTask.AutoFishing;
+using BetterGenshinImpact.GameTask.Model.Area.Converter;
+using BetterGenshinImpact.GameTask.Model.Area;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Drawing;
+using BetterGenshinImpact.Core.Recognition.ONNX.YOLO;
+using Microsoft.Extensions.Time.Testing;
+
+namespace BetterGenshinImpact.UnitTest.GameTaskTests.AutoFishingTests
+{
+ public partial class BehavioursTests
+ {
+ [Theory]
+ [InlineData(@"20250306111752769_GetFishBoxArea_Succeeded.png")]
+ ///
+ /// 测试获取钓鱼拉扯框,结果为成功
+ ///
+ public void GetFishBoxArea_ShouldSuccess(string screenshot1080p)
+ {
+ //
+ Bitmap bitmap = new Bitmap(@$"..\..\..\Assets\AutoFishing\{screenshot1080p}");
+ var imageRegion = new GameCaptureRegion(bitmap, 0, 0, drawContent: new FakeDrawContent());
+
+ var blackboard = new Blackboard(null, sleep: i => { });
+
+ //
+ GetFishBoxArea sut = new GetFishBoxArea("-", blackboard, new FakeLogger(), false);
+ BehaviourStatus actual = sut.Tick(imageRegion);
+
+ //
+ Assert.Equal(BehaviourStatus.Succeeded, actual);
+ }
+
+ [Theory]
+ [InlineData(@"20250306111752769_GetFishBoxArea_Succeeded.png")]
+ [InlineData(@"202503012143011486@900p.png")]
+ ///
+ /// 测试获取钓鱼拉扯框,超时后,结果为失败
+ ///
+ public void GetFishBoxArea_ShouldFail(string screenshot1080p)
+ {
+ //
+ Bitmap bitmap = new Bitmap(@$"..\..\..\Assets\AutoFishing\{screenshot1080p}");
+ var imageRegion = new GameCaptureRegion(bitmap, 0, 0, drawContent: new FakeDrawContent());
+
+ var blackboard = new Blackboard(null, sleep: i => { });
+
+ FakeTimeProvider fakeTimeProvider = new FakeTimeProvider();
+
+ //
+ GetFishBoxArea sut = new GetFishBoxArea("-", blackboard, new FakeLogger(), false, fakeTimeProvider);
+ BehaviourStatus actual = sut.Tick(imageRegion);
+
+ //
+ Assert.NotEqual(BehaviourStatus.Failed, actual);
+
+ //
+ fakeTimeProvider.Advance(TimeSpan.FromSeconds(6));
+
+ //
+ actual = sut.Tick(imageRegion);
+
+ //
+ Assert.Equal(BehaviourStatus.Failed, actual);
+ }
+ }
+}