Skip to content

Commit 4cd3aca

Browse files
author
冯周
committed
sprint test controller
1 parent cd34e91 commit 4cd3aca

File tree

6 files changed

+144
-4
lines changed

6 files changed

+144
-4
lines changed

spitter-web/pom.xml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@
5555
</dependency>
5656
<dependency>
5757
<groupId>javax.servlet</groupId>
58-
<artifactId>servlet-api</artifactId>
59-
<version>2.5</version>
58+
<artifactId>javax.servlet-api</artifactId>
59+
<version>3.1.0</version>
6060
<scope>provided</scope>
6161
</dependency>
6262
<dependency>
@@ -159,6 +159,16 @@
159159
<artifactId>junit</artifactId>
160160
<version>4.11</version>
161161
</dependency>
162+
<dependency>
163+
<groupId>org.springframework</groupId>
164+
<artifactId>spring-test</artifactId>
165+
<version>4.2.5.RELEASE</version>
166+
</dependency>
167+
<dependency>
168+
<groupId>org.mockito</groupId>
169+
<artifactId>mockito-all</artifactId>
170+
<version>1.8.0</version>
171+
</dependency>
162172
</dependencies>
163173

164174
</project>

spitter-web/src/main/java/com/vonzhou/spitter/controller/SpitterController.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,13 @@
1010
import org.springframework.validation.BindingResult;
1111
import org.springframework.web.bind.annotation.*;
1212
import org.springframework.web.multipart.MultipartFile;
13+
import org.springframework.web.servlet.ModelAndView;
1314

1415
import javax.servlet.http.HttpSession;
1516
import javax.validation.Valid;
1617
import java.io.File;
1718
import java.io.IOException;
19+
import java.util.List;
1820
import java.util.logging.Logger;
1921

2022

@@ -114,7 +116,15 @@ Spitter getSpitterInJson() {
114116
spitter.setUsername("vonzhou");
115117
spitter.setId(100L);
116118

117-
logger.info("++++++++++++++++++");
118119
return spitter;
119120
}
121+
122+
123+
@RequestMapping(value = "/upload", method = RequestMethod.POST)
124+
public String uploadImage(@RequestParam("name")String name, @RequestParam("desc") String desc, @RequestParam("avatar") MultipartFile file){
125+
logger.info("Spitter name: " + name + ", desc: " + desc);
126+
logger.info("Spitter avatar file :" + file.getOriginalFilename());
127+
return "spitters/view";
128+
}
129+
120130
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.vonzhou.spitter.controller;
2+
3+
import org.springframework.stereotype.Controller;
4+
5+
/**
6+
* Created by vonzhou on 16/7/24.
7+
*/
8+
@Controller
9+
public class SpittleController {
10+
11+
// Make some error
12+
}

spitter-web/src/main/resources/service-context.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@
1010
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
1111
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
1212

13-
<context:component-scan base-package="com.vonzhou.spitter.service" />
13+
<context:component-scan base-package="com.vonzhou.spitter" />
14+
15+
<import resource="persistence-context.xml"/>
1416

1517
<tx:advice id="txAdvice">
1618
<tx:attributes>
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
package com.vonzhou.spitter;
2+
3+
import com.vonzhou.spitter.controller.SpitterController;
4+
import org.apache.log4j.Logger;
5+
import org.junit.Before;
6+
import org.junit.Test;
7+
import org.junit.runner.RunWith;
8+
import org.mockito.Mock;
9+
import org.springframework.beans.factory.annotation.Autowired;
10+
import org.springframework.mock.web.MockMultipartFile;
11+
import org.springframework.test.context.ContextConfiguration;
12+
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
13+
import org.springframework.test.context.web.WebAppConfiguration;
14+
import org.springframework.test.web.servlet.MockMvc;
15+
import org.springframework.test.web.servlet.MvcResult;
16+
import org.springframework.test.web.servlet.ResultActions;
17+
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
18+
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
19+
20+
import javax.servlet.ServletContext;
21+
22+
import java.io.File;
23+
import java.io.FileInputStream;
24+
25+
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
26+
27+
28+
/**
29+
* Created by vonzhou on 16/7/24.
30+
*/
31+
@RunWith(SpringJUnit4ClassRunner.class)
32+
@ContextConfiguration("classpath:service-context.xml")
33+
@WebAppConfiguration
34+
public class SpitterControllerTest {
35+
36+
private static Logger logger = Logger.getLogger(SpitterControllerTest.class);
37+
38+
private MockMvc mockMvc;
39+
40+
@Autowired
41+
SpitterController spitterController;
42+
43+
@Autowired
44+
ServletContext servletContext;
45+
46+
@Before
47+
public void setUp(){
48+
mockMvc = MockMvcBuilders.standaloneSetup(spitterController).build();
49+
}
50+
51+
@Test
52+
public void testGetSpitterInJson() throws Exception{
53+
mockMvc.perform(MockMvcRequestBuilders.get("/spitter/json/test")).andDo(print());
54+
}
55+
56+
@Test
57+
public void testGetAllSpitters() throws Exception{
58+
mockMvc.perform(MockMvcRequestBuilders.get("/spitter/all")).andDo(print());
59+
}
60+
61+
@Test
62+
public void testShowSpitterProfile() throws Exception{
63+
mockMvc.perform(MockMvcRequestBuilders.get("/spitter/chown2")).andDo(print());
64+
}
65+
66+
@Test
67+
public void testCreateSpitterProfile() throws Exception{
68+
mockMvc.perform(MockMvcRequestBuilders.get("/spitter").param("new", "value")).andDo(print());
69+
}
70+
71+
@Test
72+
public void testUploadImage() throws Exception{
73+
File file = new File("/Users/vonzhou/Downloads/1.jpeg");
74+
FileInputStream fileInputStream = new FileInputStream(file);
75+
MockMultipartFile mockMultipartFile = new MockMultipartFile("avatar", file.getName(), "multipart/form-data", fileInputStream);
76+
ResultActions resultActions = mockMvc.perform(MockMvcRequestBuilders.fileUpload("/spitter/upload").file(mockMultipartFile).param("name", "vonzhou").param("desc", "a student")).andDo(print());
77+
78+
}
79+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.vonzhou.spitter;
2+
3+
import com.vonzhou.spitter.controller.SpittleController;
4+
import org.junit.runner.RunWith;
5+
import org.mockito.Mock;
6+
import org.springframework.test.context.ContextConfiguration;
7+
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
8+
import org.springframework.test.context.web.WebAppConfiguration;
9+
10+
/**
11+
* Created by vonzhou on 16/7/24.
12+
*/
13+
@RunWith(SpringJUnit4ClassRunner.class)
14+
@ContextConfiguration("classpath:service-context.xml")
15+
@WebAppConfiguration
16+
public class SpittleControllerTest {
17+
18+
19+
20+
21+
@Mock
22+
SpittleController spittleController;
23+
24+
25+
26+
27+
}

0 commit comments

Comments
 (0)