diff --git a/cluster/router/chain/chain_test.go b/cluster/router/chain/chain_test.go
index 7a15ab6206a18051d7d1622443a6c13db778cd39..0389977cf9fcc774f921d52527b1a318f1fbc358 100644
--- a/cluster/router/chain/chain_test.go
+++ b/cluster/router/chain/chain_test.go
@@ -19,6 +19,7 @@ package chain
 
 import (
 	"context"
+	"github.com/apache/dubbo-go/cluster/router/condition"
 	"github.com/apache/dubbo-go/common"
 	"github.com/apache/dubbo-go/common/config"
 	"github.com/apache/dubbo-go/common/extension"
@@ -40,14 +41,14 @@ func TestNewRouterChain(t *testing.T) {
 	err = z.Create("/dubbo/config/dubbo/test-condition.condition-router")
 	assert.NoError(t, err)
 
-	data := `enabled: true
+	testyml := `enabled: true
 force: true
 runtime: false
 conditions:
   - => host != 172.22.3.91
 `
 
-	_, err = z.Conn.Set("/dubbo/config/dubbo/test-condition.condition-router", []byte(data), 0)
+	_, err = z.Conn.Set("/dubbo/config/dubbo/test-condition.condition-router", []byte(testyml), 0)
 	assert.NoError(t, err)
 	defer ts.Stop()
 	defer z.Close()
@@ -62,7 +63,21 @@ conditions:
 	assert.NotNil(t, configuration)
 
 	chain := NewRouterChain(getRouteUrl("test-condition"))
-	t.Log(chain.routers)
+	assert.Equal(t, 1, len(chain.routers))
+	appRouter := chain.routers[0].(*condition.AppRouter)
+
+	assert.NotNil(t, appRouter)
+	assert.NotNil(t, appRouter.RouterRule())
+	rule := appRouter.RouterRule()
+	assert.Equal(t, "", rule.Scope)
+	assert.True(t, rule.Force)
+	assert.True(t, rule.Enabled)
+	assert.True(t, rule.Valid)
+
+	assert.Equal(t, testyml, rule.RawRule)
+	assert.Equal(t, false, rule.Runtime)
+	assert.Equal(t, false, rule.Dynamic)
+	assert.Equal(t, "", rule.Key)
 }
 
 func getRouteUrl(applicationKey string) *common.URL {
diff --git a/cluster/router/condition/listenable_router.go b/cluster/router/condition/listenable_router.go
index 8d8de42eb314de03bdba026b853f7c5335d448e5..0a386cc36a5288826697631d4553ada66cb3f82d 100644
--- a/cluster/router/condition/listenable_router.go
+++ b/cluster/router/condition/listenable_router.go
@@ -49,6 +49,10 @@ type listenableRouter struct {
 	priority         int64
 }
 
+func (l *listenableRouter) RouterRule() *RouterRule {
+	return l.routerRule
+}
+
 func newListenableRouter(url *common.URL, ruleKey string) (*AppRouter, error) {
 	if ruleKey == "" {
 		return nil, perrors.Errorf("newListenableRouter ruleKey is nil, can't create Listenable router")
@@ -106,6 +110,7 @@ func (l *listenableRouter) generateConditions(rule *RouterRule) {
 		return
 	}
 	l.conditionRouters = make([]*ConditionRouter, 0)
+	l.routerRule = rule
 	for _, c := range rule.Conditions {
 		router, e := NewConditionRouterWithRule(c)
 		if e != nil {