diff --git a/GFramework.Cqrs.Tests/Cqrs/CqrsDispatcherContextValidationTests.cs b/GFramework.Cqrs.Tests/Cqrs/CqrsDispatcherContextValidationTests.cs
new file mode 100644
index 00000000..bf1998a9
--- /dev/null
+++ b/GFramework.Cqrs.Tests/Cqrs/CqrsDispatcherContextValidationTests.cs
@@ -0,0 +1,165 @@
+using System.Collections.Generic;
+using System.Runtime.CompilerServices;
+using GFramework.Core.Abstractions.Ioc;
+using GFramework.Core.Abstractions.Logging;
+using GFramework.Cqrs.Abstractions.Cqrs;
+using GFramework.Cqrs.Cqrs;
+using GFramework.Cqrs.Tests.Logging;
+
+namespace GFramework.Cqrs.Tests.Cqrs;
+
+///
+/// 验证默认 dispatcher 在上下文注入前置条件不满足时的失败语义。
+///
+[TestFixture]
+internal sealed class CqrsDispatcherContextValidationTests
+{
+ ///
+ /// 验证当 request handler 需要上下文注入、但当前 CQRS 上下文不实现 时,
+ /// dispatcher 会在调用前显式失败。
+ ///
+ [Test]
+ public void SendAsync_Should_Throw_When_Context_Does_Not_Implement_IArchitectureContext()
+ {
+ var runtime = CreateRuntime(
+ container =>
+ {
+ container
+ .Setup(currentContainer => currentContainer.Get(typeof(IRequestHandler)))
+ .Returns(new ContextAwareRequestHandler());
+ container
+ .Setup(currentContainer => currentContainer.GetAll(typeof(IPipelineBehavior)))
+ .Returns(Array.Empty