diff --git a/src/test/kotlin/com/supwisdom/dlpay/MvcBaseTest.kt b/src/test/kotlin/com/supwisdom/dlpay/MvcBaseTest.kt
index 626b090..62a56a3 100644
--- a/src/test/kotlin/com/supwisdom/dlpay/MvcBaseTest.kt
+++ b/src/test/kotlin/com/supwisdom/dlpay/MvcBaseTest.kt
@@ -1,9 +1,12 @@
 package com.supwisdom.dlpay
 
+import com.google.gson.Gson
 import org.junit.runner.RunWith
+import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc
 import org.springframework.boot.test.context.SpringBootTest
 import org.springframework.test.context.junit4.SpringRunner
+import org.springframework.test.web.servlet.MockMvc
 
 /**
  * mvc 基础测试类
@@ -12,4 +15,8 @@
 @RunWith(SpringRunner::class)
 @SpringBootTest
 @AutoConfigureMockMvc
-abstract class MvcBaseTest
\ No newline at end of file
+abstract class MvcBaseTest{
+    @Autowired
+    protected lateinit var mvc: MockMvc
+    val gson = Gson()
+}
\ No newline at end of file
diff --git a/src/test/kotlin/com/supwisdom/dlpay/controller/ApiControllerTest.kt b/src/test/kotlin/com/supwisdom/dlpay/controller/ApiControllerTest.kt
new file mode 100644
index 0000000..0899c9a
--- /dev/null
+++ b/src/test/kotlin/com/supwisdom/dlpay/controller/ApiControllerTest.kt
@@ -0,0 +1,24 @@
+package com.supwisdom.dlpay.controller
+
+import com.supwisdom.dlpay.MvcBaseTest
+import org.junit.Test
+import org.springframework.http.MediaType
+import org.springframework.test.web.servlet.request.MockMvcRequestBuilders
+import org.springframework.test.web.servlet.result.MockMvcResultHandlers
+import org.springframework.test.web.servlet.result.MockMvcResultMatchers
+
+/**
+ * Created by shuwei on 2019/4/16.
+ */
+class ApiControllerTest : MvcBaseTest() {
+    @Test
+    fun testYktPay() {
+        //TODO prepare data
+        val stuempno="10000097"
+        val ret = mvc.perform(MockMvcRequestBuilders.post("/ykt/payinit").content("")
+                .contentType(MediaType.APPLICATION_JSON))
+                .andExpect(MockMvcResultMatchers.status().isOk)
+                .andDo(MockMvcResultHandlers.print())
+                .andReturn()
+    }
+}
\ No newline at end of file
diff --git a/src/test/kotlin/com/supwisdom/dlpay/controller/ShopControllerTest.kt b/src/test/kotlin/com/supwisdom/dlpay/controller/ShopControllerTest.kt
index e07a5fe..41d7208 100644
--- a/src/test/kotlin/com/supwisdom/dlpay/controller/ShopControllerTest.kt
+++ b/src/test/kotlin/com/supwisdom/dlpay/controller/ShopControllerTest.kt
@@ -6,9 +6,7 @@
 import com.supwisdom.dlpay.shop.bean.ShopParam
 import org.junit.Assert
 import org.junit.Test
-import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.http.MediaType
-import org.springframework.test.web.servlet.MockMvc
 
 import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get
 import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post
@@ -19,9 +17,6 @@
  * Created by shuwei on 2019/4/15.
  */
 class ShopControllerTest : MvcBaseTest() {
-    @Autowired
-    private lateinit var mvc: MockMvc
-
     class RetBean {
         var shopid: Int = 0
         var retcode: Int = 0
diff --git a/src/test/kotlin/com/supwisdom/dlpay/controller/UserControllerTest.kt b/src/test/kotlin/com/supwisdom/dlpay/controller/UserControllerTest.kt
index 3d93d47..e737908 100644
--- a/src/test/kotlin/com/supwisdom/dlpay/controller/UserControllerTest.kt
+++ b/src/test/kotlin/com/supwisdom/dlpay/controller/UserControllerTest.kt
@@ -4,21 +4,16 @@
 import com.supwisdom.dlpay.MvcBaseTest
 import com.supwisdom.dlpay.consume.domain.TAccount
 import com.supwisdom.dlpay.consume.domain.TPerson
-import com.supwisdom.dlpay.shop.bean.ShopParam
 import com.supwisdom.dlpay.shop.bean.UserParam
 import org.junit.Assert
 import org.junit.Test
-import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.http.MediaType
-import org.springframework.test.web.servlet.MockMvc
 import org.springframework.test.web.servlet.request.MockMvcRequestBuilders
 import org.springframework.test.web.servlet.result.MockMvcResultHandlers
 import org.springframework.test.web.servlet.result.MockMvcResultMatchers
 
 
 class UserControllerTest : MvcBaseTest() {
-    @Autowired
-    private lateinit var mvc: MockMvc
 
     class RetBean {
         var userid: String = ""
@@ -32,7 +27,7 @@
         val userParam = UserParam()
         userParam.uniqueId = ""//random req
         userParam.name = "测试名称"
-        val gson = Gson()
+
         val ret = mvc.perform(MockMvcRequestBuilders.post("/user/open").content(gson.toJson(userParam))
                 .contentType(MediaType.APPLICATION_JSON))
                 .andExpect(MockMvcResultMatchers.status().isOk)
