diff --git a/config/reference_config_test.go b/config/reference_config_test.go
index 296cde65fad6017b930ef06e0045a45b4af27c86..774fece29f5158b6840b3384b5c56846cc4da37b 100644
--- a/config/reference_config_test.go
+++ b/config/reference_config_test.go
@@ -20,6 +20,8 @@ package config
 import (
 	"sync"
 	"testing"
+
+	"github.com/apache/dubbo-go/common/constant"
 )
 
 import (
@@ -82,6 +84,7 @@ func doInit() {
 			"MockService": {
 				Params: map[string]string{
 					"serviceid": "soa.mock",
+					"forks":     "5",
 				},
 				Registry:      "shanghai_reg1,shanghai_reg2,hangzhou_reg1,hangzhou_reg2",
 				InterfaceName: "com.MockService",
@@ -190,6 +193,23 @@ func Test_Implement(t *testing.T) {
 	consumerConfig = nil
 }
 
+func Test_Forking(t *testing.T) {
+	doInit()
+	extension.SetProtocol("dubbo", GetProtocol)
+	extension.SetProtocol("registry", GetProtocol)
+	m := consumerConfig.References["MockService"]
+	m.Url = "dubbo://127.0.0.1:20000;registry://127.0.0.2:20000"
+
+	for _, reference := range consumerConfig.References {
+		reference.Refer()
+		forks := int(reference.invoker.GetUrl().GetParamInt(constant.FORKS_KEY, constant.DEFAULT_FORKS))
+		assert.Equal(t, 5, forks)
+		assert.NotNil(t, reference.pxy)
+		assert.NotNil(t, reference.Cluster)
+	}
+	consumerConfig = nil
+}
+
 func GetProtocol() protocol.Protocol {
 	if regProtocol != nil {
 		return regProtocol